首頁 > 後端開發 > Golang > 為什麼我的 Go 時區轉換總是回傳 UTC?

為什麼我的 Go 時區轉換總是回傳 UTC?

Mary-Kate Olsen
發布: 2024-11-30 13:21:15
原創
519 人瀏覽過

Why Does My Go Timezone Conversion Always Return UTC?

了解時區解析和轉換

在提供的 Go 程式碼片段中,parseAndPrint 函數旨在解析特定時間並在指定時區中顯示它。但是,無論選擇的時區如何,它始終返回“[date] 05:00:00 0000 UTC”。要解決此問題,必須更深入地了解時區解析和轉換。

Go 中的時區處理

解析時間值時,您通常會在目前本地時區中進行解析。但是,時區縮寫特定於您解析的位置。如果需要解析不同時區的時間,則必須明確指定適當的時間位置或時區偏移。

程式碼的問題

所提供程式碼中的問題在於以下行:測試時間是使用 time.Date 建立的。此行將測試時間的時區設定為系統的本機時區,即使您在解析輸入字串時提供了時區參數。因此,將測試時間轉換為 UTC 始終會產生與本地時區相同的偏移量。

解決方案

要解決此問題,您需要使用提供的時區資訊建立測試時間。這可以透過使用 time.LoadLocation 載入相應的時間位置對象,然後使用 time.ParseInLocation 解析該位置的輸入字串來完成。產生的時間將具有正確的時區偏移。

替代方法

根據您的特定要求,您可以考慮處理時區和轉換的替代方法:

  • 透過使用UTC 方法明確轉換所有時間,將所有時間標準化為UTC。
  • 僅使用時區偏移(例如“-05:00”)。
  • 利用 Go 的 time.Location 介面來載入和解析特定時區的時間。

以上是為什麼我的 Go 時區轉換總是回傳 UTC?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板