Go でタイムゾーンをグローバルに設定する: オプションの探索
Go でタイムゾーンをグローバルに設定すると、時間関連関数の動作に影響します。デフォルトでは、タイムゾーンは環境変数 TZ または /etc/localtime などのシステム ファイルに基づいて初期化されます。ただし、この設定をプログラムで変更する必要があるシナリオもあります。
os.SetEnv("TZ") に関する問題
1 つの方法は、os を使用することです。アプリの初期化フェーズで SetEnv("TZ", "Africa/Cairo") を実行します。ただし、これが常に期待どおりに機能するとは限りません。他のパッケージがタイム パッケージにアクセスする前にタイムゾーンが設定されるようにするには、タイムゾーンの初期化用に別のパッケージを作成することが重要です。
タイムゾーン初期化パッケージの作成
package tzinit import ( "os" ) func init() { os.Setenv("TZ", "Africa/Cairo") }
タイムゾーンの初期化のインポートパッケージ
このパッケージをメイン パッケージの最初のインポートとしてインポートします:
package main import _ "path/to/tzinit" // Your other imports...
これにより、他のパッケージがタイム パッケージを使用する前にタイムゾーンが設定されます。
注:
複数のソース ファイルが存在することを確認することが重要です。字句順にコンパイラに供給されます。現在のコンパイラはリストどおりにインポートを処理しますが、その順序は Go 仕様によって保証されていません。
代替アプローチ: 環境変数を設定する
信頼性を高めるために、次のように設定することをお勧めします。 Go アプリが起動される前の TZ 環境変数。これは、Dockerfile で行うか、アプリケーション プロセスのホスト システムに環境変数を設定することで実行できます。
以上がGo アプリケーションでグローバル タイムゾーンを確実に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。