為什麼 Go 的 Time.Parse 函數不解析時區識別符?
使用 Go 的 time.Parse 函數解析時間字串時,時區識別碼(例如「MST」)是根據「目前位置」設定進行解釋的。如果目前位置無法辨識縮寫,則時間將記錄為偏移量為零的虛構位置。
為了說明這一點,以下程式碼片段示範了該問題:
date := "2018 08 01 12:00 EDT" tn, _ := time.Parse(format, date) fmt.Println(tn) // Print +0000 despite EDT indicating a -0400 offset
此程式碼使用time.Parse 函數解析「2006 01 02 15:04 MST」格式的日期字串,然後列印產生的Time 物件。但是,它會列印“0000”而不是預期的“-0400”,因為函數使用的當前位置無法識別“EDT”縮寫。
要避免此問題,您可以使用替代方法進行解析時間字串:
透過這些方法,您可以準確解析帶有時區縮寫的時間字串,確保時區資訊的正確解釋。
以上是為什麼 Go 的 `time.Parse` 會誤解「EDT」等時區識別碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!