Go でタイムゾーンを正しく使用する
タイムゾーン コードを解析しようとする場合、Go でのタイムゾーンの処理方法の微妙な違いを理解することが重要です。 .
あなたが提供したコードは、時間がかかる parseAndPrint という関数を設定します。インスタンスとタイムゾーンの略語を引数として指定します。ただし、指定したタイムゾーンに関係なく、関数の出力は常に「05:00:00 0000 UTC」です。
この問題は、現在の場所の時刻を解析しているために発生します。この時刻は、現在とは異なる場合があります。希望のタイムゾーン。 Go の time.Parse 関数は、time.Location.
を使用して明示的に指定されていない限り、現在の場所で解析していると想定します。特定のタイムゾーンの時間を正しく解析するには、次の手順を使用する必要があります:
これらの手順をcode:
func parseAndPrintWithLocation(now time.Time, timezone string) { location, err := time.LoadLocation(timezone) if err != nil { fmt.Println(err) return } test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location) if err != nil { fmt.Println(err) return } test = time.Date( now.Year(), now.Month(), now.Day(), test.Hour(), test.Minute(), test.Second(), test.Nanosecond(), test.Location(), ) fmt.Println(test) }
タイムゾーンの位置に対して正しいアプローチを利用することで、解析された時刻に目的のタイムゾーンが確実に反映され、コードでさまざまな地域の時刻を正確に処理できるようになります。
以上がGo でタイムゾーンを正しく解析して処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。