>  기사  >  백엔드 개발  >  Go에서 특정 시간대를 사용하여 시간 문자열을 구문 분석하는 방법은 무엇입니까?

Go에서 특정 시간대를 사용하여 시간 문자열을 구문 분석하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 18:03:02662검색

How to Parse a Time String with a Specific Time Zone in Go?

특정 시간대를 사용하여 시간 구문 분석

time.ParseTime()을 사용하여 문자열에서 시간 구조체를 가져올 수 있습니다. 입력 문자열의 형식을 지정하는 인수로 레이아웃 문자열을 사용합니다. 레이아웃 문자열은 입력 문자열의 형식과 정확히 일치해야 합니다.

시간대가 포함된 시간 문자열을 구문 분석해야 하는 경우 time.ParseInLocation()을 사용할 수 있습니다. 이 함수는 레이아웃 문자열과 위치를 인수로 사용합니다. 위치는 time.Location 값이거나 시간대 이름을 나타내는 문자열일 수 있습니다.

예를 들어 다음 코드는 시간대를 포함하는 시간 문자열을 구문 분석합니다.

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00 +0000 CEST"

    t, err := time.ParseInLocation(layout, timeStr, time.Local)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(t)
}</code>

이것은 코드는 다음 출력을 인쇄합니다.

2012-07-09 05:02:00 +0000 CEST

time.ParseInLocation() 함수는 레이아웃 문자열과 지정된 위치에 따라 시간 문자열을 구문 분석합니다. 이 경우 레이아웃 문자열은 "2006-01-02 15:04"이고 위치는 "CEST"입니다. time.ParseInLocation() 함수는 구문 분석된 시간을 나타내는 time.Time 값을 반환합니다.

위치를 지정하지 않으면 time.ParseInLocation() 함수는 현지 시간대를 사용합니다. 이는 구문 분석된 시간이 현지 시간대로 변환된다는 의미입니다.

시간을 생성하여 이를 방지할 수 있습니다.올바른 시간과 시간대가 포함된 시간 값:

<code class="go">import (
    "fmt"
    "time"
)

func main() {
    const layout = "2006-01-02 15:04"
    const timeStr = "2012-07-09 05:02:00"
    const timeZone = "CEST"

    pz, err := time.LoadLocation(timeZone)
    if err != nil {
        fmt.Println(err)
        return
    }

    t, err := time.Parse(layout, timeStr)
    if err != nil {
        fmt.Println(err)
        return
    }

    T := t.In(pz)

    fmt.Println(T)
}</code>

이것은 코드는 다음 출력을 인쇄합니다.

2012-07-09 05:02:00 +0200 CEST

이 코드의 출력은 올바른 시간대의 시간을 보여줍니다.

위 내용은 Go에서 특정 시간대를 사용하여 시간 문자열을 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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