在 Go 中,處理時區有時會導致意外行為。讓我們深入研究使用自訂時間格式解析時區時遇到的常見問題。
提供的程式碼片段定義了一個parseAndPrint 函數,旨在解析所表示的時間為特定時區內的“05:00:00” ,然後以UTC 格式列印結果。然而,無論指定的時區如何,結果時間都保持不變,每次都顯示「[date] 05:00:00 0000 UTC」。
根本原因在於如何在 parseAndPrint 函數中使用 time.Parse 解析時間。當前時間透過 time.Now() 取得並作為參數傳遞給 time.Parse,後者根據指定的時區縮寫解釋輸入字串。
但是,解析是在系統的本地時區中完成的,不是指定的所需時區。無論預期的時區如何,這種差異都會導致錯誤的解析和 UTC 的一致輸出。
要正確處理時區,解析時區的字串表示至關重要使用正確的 time.Location 實例在指定時區中的時間。這涉及以下步驟:
透過採用此方法,程式碼將正確解析並列印所需時區中提供的時間,並考慮時區之間的時差。
以上是為什麼我的 Go 時區解析總是回傳 UTC?的詳細內容。更多資訊請關注PHP中文網其他相關文章!