」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在Go中解析具有特定時區的時間字串?

如何在Go中解析具有特定時區的時間字串?

發佈於2024-11-15
瀏覽:353

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

解析特定時區的時間

您可以使用 time.ParseTime() 從字串中取得時間結構。它採用佈局字串作為參數,指定輸入字串的格式。佈局字串必須與輸入字串的格式完全相符。

如果需要解析包含時區的時間字串,可以使用 time.ParseInLocation()。此函數採用佈局字串和位置作為參數。該位置可以是 time.Location 值或表示時區名稱的字串。

例如,以下程式碼解析包含時區的時間字串:

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)
}

此程式碼將列印以下輸出:

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

time.ParseInLocation() 函數將解析時間根據佈局字元字串和指定位置的字串。在本例中,佈局字串為“2006-01-02 15:04”,位置為“CEST”。 time.ParseInLocation() 函數將會傳回一個表示解析時間的 time.Time 值。

如果未指定位置,time.ParseInLocation() 函數將使用本地時區。這意味著解析的時間將轉換為本地時區。

您可以透過創建時間來避免這種情況。具有正確時間和時區的時間值:

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)
}

此程式碼將列印以下輸出:

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

此程式碼的輸出顯示正確的時間時區。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3