>  기사  >  백엔드 개발  >  Golang에서 시간 변환을 효율적으로 구현하는 방법

Golang에서 시간 변환을 효율적으로 구현하는 방법

PHPz
PHPz원래의
2023-04-11 10:41:361741검색

Golang은 상대적으로 젊은 프로그래밍 언어이지만 매우 높은 운영 효율성과 강력한 동시 처리 기능 덕분에 점점 더 개발자들의 선호를 받고 있습니다. 실제 개발에서는 시간을 다른 형식의 문자열로 변환하거나, 문자열을 시간으로 변환해야 하는 경우가 종종 있습니다. 이번 글에서는 Golang에서 시간 변환을 효율적으로 구현하는 방법을 공유하겠습니다.

  1. 시간 유형

Golang에는 time.Time과 time.Duration이라는 두 가지 주요 시간 유형이 있습니다. 그 중 time.Time은 2021년 7월 1일 12시와 같이 특정 시간을 나타낼 수 있는 시점을 나타내고, time.Duration은 시간을 나타낼 수 있는 기간을 나타낸다. 10초, 5분 등 특정 시점 사이의 범위입니다.

  1. 시간의 형식화된 출력

time.Time 유형의 시간을 문자열로 변환해야 하는 경우 time.Time 유형에서 Format() 메서드를 사용할 수 있습니다. Format() 메서드는 시간 형식 레이아웃을 입력 매개 변수로 받은 다음 시간 형식을 해당 문자열로 지정합니다.

다음은 샘플 코드입니다.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Println(t.Format("2006-01-02 15:04:05"))
}

실행 결과:

2021-07-01 12:00:00

다음 표에 표시된 것처럼 형식 문자열에서 서로 다른 문자는 서로 다른 의미를 나타냅니다.

03(12시간제) 04분05초.000밀리초PMAM 또는 PM(12시간 형식)월요일 요일(전체 이름, 예: Monday) Mon요일(약식 이름, 예: Mon) Jan월(전체 이름, 예: January ) Janmonth(Jan과 같은 약식 이름) MST시간대 이름(MST, PST 등)
형식 문자 의미
2006 연도(예제에 사용된 연도)
01 month
02 day
15 시(24시간제)
미리 정의된 형식 문자를 사용하는 것 외에, 다음과 같이 형식 문자열을 사용자 정의할 수도 있습니다.

t := time.Now()
fmt.Println(t.Format("2006年01月02日 15:04:05.000 PM MST"))
    문자열을 시간 유형으로
문자열을 time.Time 유형의 시간으로 변환해야 하는 경우 time.Parse() 메서드를 사용할 수 있습니다. Parse() 메서드는 두 개의 매개 변수를 받습니다. 첫 번째 매개 변수는 시간 문자열이고 두 번째 매개 변수는 시간 형식 레이아웃입니다. 예:

package main

import (
    "fmt"
    "time"
)

func main() {
    str := "2021-07-01 12:00:00"
    layout := "2006-01-02 15:04:05"
    t, err := time.Parse(layout, str)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(t)
}
위 코드에서는 문자열을 time.Time 유형의 변수 t로 변환하고 코드의 변환 프로세스에서 오류를 확인하여 프로그램의 견고성을 보장했습니다.

    시간 차이 계산
Golang에서는 뺄셈을 직접 사용하여 시간 차이를 계산할 수 있습니다. 예:

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Date(2021, 7, 1, 12, 0, 0, 0, time.Local)
    t2 := time.Date(2021, 7, 1, 12, 1, 0, 0, time.Local)
    duration := t2.Sub(t1)
    fmt.Println(duration)
}
위 코드에서는 time.Date() 함수를 사용하여 Two times를 생성합니다. t1과 t2를 비교하고 시간 차이를 계산하고 결과를 time.Duration 유형의 변수 지속 기간에 저장합니다.

    타임스탬프를 time.Time 유형으로 변환
프로그램에서 타임스탬프는 때때로 시간을 나타내는 데 사용됩니다. Golang에서는 time.Unix() 메서드를 사용하여 타임스탬프를 time.Time 유형 time으로 변환할 수 있습니다. 예:

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := int64(1625133600)
    t := time.Unix(timestamp, 0)
    fmt.Println(t)
}
실행 결과:

2021-07-01 13:00:00 +0800 CST
위 코드에서 time.Unix() 메소드 Time t를 사용하여 타임스탬프 1625133600(2021년 7월 1일 베이징 시간 13시를 나타냄)을 타임스탬프로 변환했습니다. 시간.시간 유형입니다.

    시간 연산에 대한 주의 사항
시간 연산을 위해 Golang을 사용하는 과정에서 다음 사항에 주의해야 합니다.

1) 문자열을 시간으로 변환하기 위해 time.Parse() 메서드를 사용할 때 time.Time 유형 이 작업을 수행할 때 시간 문자열이 시간 형식 레이아웃의 형식과 일치하는지 확인해야 합니다. 그렇지 않으면 오류가 발생합니다.

2) 시간을 처리할 때 시간대 변환을 수행해야 하는 경우 time.UTC() 및 time.Local 두 변수를 사용해야 합니다. time.UTC()는 협정 세계시를 나타내고 time.Local은 위치를 나타냅니다. 현재 시스템.

3) 시간을 처리할 때 연, 월, 일, 시, 분, 초 등 별도의 시간 부분을 구해야 하는 경우 Year(), Month(), Day(), Hour를 사용할 수 있습니다. (), Minute( time.Time 유형의 ), Second() 및 기타 메소드.

4) time.Duration 유형의 변수를 사용하여 시간 범위를 표현하는 경우 time.ParseDuration() 메서드를 사용하면 문자열 유형의 시간 범위를 time.Duration 유형의 변수로 변환하여 정확도를 제어할 수 있습니다.

요컨대, Golang을 사용하여 시간을 처리할 때 시간의 정확성과 프로그램의 견고성을 보장하기 위해 세부 사항에 주의해야 합니다.

    요약
이 기사에서는 시간 형식 출력, 문자열을 시간으로 변환하는 것을 포함하여 Golang에서 시간 변환 작업을 수행하는 방법에 대해 논의했습니다.Time 유형, 시간 차이 계산 및 타임스탬프를 시간으로 변환.Time 유형 및 지식의 다른 측면. 이러한 지식을 습득함으로써 시간 관련 문제를 보다 효율적으로 처리하고 프로그램의 실용성과 신뢰성을 향상시킬 수 있습니다.

위 내용은 Golang에서 시간 변환을 효율적으로 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.