在 Go 中設定全域時區
在 Go 中,時區通常透過環境變數 TZ 設定。雖然可以在 Docker 容器中或透過 Bash 設定此變量,但另一種方法是在 Go 應用程式中使用 os.SetEnv 函數。但是,如果其他包已經訪問了時間包,這種方法可能會失敗。
為了確保os.SetEnv 在任何其他套件存取時間之前設定時區,可以使用以下解決方案:
建立時區初始化封包:
建立單獨的套件命名為tzinit,程式碼如下:
package tzinit import ( "os" ) func init() { os.Setenv("TZ", "Africa/Cairo") }
在主套件中先導入 tzinit:
在主包中,導入 tzinit套件作為第一個導入語句:
package main import _ "path/to/tzinit" // Other imports
透過先匯入 tzinit,可以確保它在任何其他套件存取時間包之前設定時區。
注意:
雖然在大多數情況下可以在Go 應用程式中設定TZ 環境變量,但建議在啟動Go 應用程式之前設定此變量,以獲得一致且確定的行為。
以上是如何在 Go 應用程式中可靠地設定全球時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!