解析特定時區的時間
您可以使用 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>
This程式碼會列印以下輸出:
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中文網其他相關文章!