在提供的 Go 程式碼片段中,parseAndPrint 函數旨在解析特定時間並在指定時區中顯示它。但是,無論選擇的時區如何,它始終返回“[date] 05:00:00 0000 UTC”。要解決此問題,必須更深入地了解時區解析和轉換。
解析時間值時,您通常會在目前本地時區中進行解析。但是,時區縮寫特定於您解析的位置。如果需要解析不同時區的時間,則必須明確指定適當的時間位置或時區偏移。
所提供程式碼中的問題在於以下行:測試時間是使用 time.Date 建立的。此行將測試時間的時區設定為系統的本機時區,即使您在解析輸入字串時提供了時區參數。因此,將測試時間轉換為 UTC 始終會產生與本地時區相同的偏移量。
要解決此問題,您需要使用提供的時區資訊建立測試時間。這可以透過使用 time.LoadLocation 載入相應的時間位置對象,然後使用 time.ParseInLocation 解析該位置的輸入字串來完成。產生的時間將具有正確的時區偏移。
根據您的特定要求,您可以考慮處理時區和轉換的替代方法:
以上是為什麼我的 Go 時區轉換總是回傳 UTC?的詳細內容。更多資訊請關注PHP中文網其他相關文章!