理解Go 中的time.Parse 行為
在Go 中, time.Parse 方法用於將字串轉換為time.Time值。但是,時區轉換可能會出現問題,導致意外結果。
要解決這些問題,定義正確的格式字串至關重要。應處理 time.Parse 傳回的錯誤,以深入了解轉換過程。
修正的格式字串
範例程式碼中提供的格式字串,「2013 -05-13 18:41:34.848 -0700 PDT」是不正確的。為了遵守 Go 時間格式化語法,正確的格式應該是:
const longForm = "2006-01-02 15:04:05 -0700"
錯誤處理範例程式碼
透過處理 time.Parse傳回的錯誤,我們可以識別任何轉換問題:
package main import ( "fmt" "log" "time" ) func main() { const longForm = "2006-01-02 15:04:05 -0700" t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700") if err != nil { log.Fatal(err) } fmt.Println(t) }
輸出
使用更正的格式字串和正確的錯誤處理,輸出將是:
2013-05-13 01:41:34.848 +0000 UTC
此輸出準確反映UTC 時間,考慮格式字串中指定的時區。透過理解 time.Parse 行為並遵循正確的語法,開發人員可以有效地將字串轉換為 Go 中的時間值。
以上是如何正確解析Go with Time Zones中的時間字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!