在Go 中正確使用時區
嘗試解析時區代碼時,了解Go 中時區處理方式的細微差別至關重要.
您提供的程式碼設定了一個名為parseAndPrint的函數,該函數需要一個時間實例和一個時區縮寫作為參數。但是,無論您指定哪個時區,函數的輸出始終為「05:00:00 0000 UTC」。
出現問題的原因是您正在解析目前位置的時間,該時間可能與所需的時區。 Go 的 time.Parse 函數假設您正在目前位置進行解析,除非使用 time.Location 明確指定。
要正確解析特定時區的時間,您應該使用以下步驟:
以下是如何在您的應用程式中使用這些步驟的範例程式碼:
func parseAndPrintWithLocation(now time.Time, timezone string) { location, err := time.LoadLocation(timezone) if err != nil { fmt.Println(err) return } test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location) if err != nil { fmt.Println(err) return } test = time.Date( now.Year(), now.Month(), now.Day(), test.Hour(), test.Minute(), test.Second(), test.Nanosecond(), test.Location(), ) fmt.Println(test) }
透過使用正確的時區位置方法,您可以確保解析的時間反映所所需的時區,從而使您的程式碼能夠準確處理來自不同地區的時間。
以上是Go中如何正確解析和處理時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!