Go で日付に日数を追加する
Go では、特定の日付の午前 0 時に次の日を決定することにより、特に次のような場合に、特定の課題が生じます。夏時間の変更を受けるタイムゾーンを処理します。
正確な結果を確保するには、time.Date 関数の使用を検討してください。
<code class="go">t2 := time.Date(givenDate.Year(), givenDate.Month(), givenDate.Day()+1, 0, 0, 0, 0, loc)</code>
ここで、loc は目的のタイムゾーン (ファイル内の time.UTC) を表します。例を示します)。 time.Date ではタイムゾーンが考慮されるため、このアプローチは信頼できます。
あるいは、効率を向上させるために、コードを合理化することもできます。
<code class="go">y, m, d := givenDate.Date() t2 := time.Date(y, m, d+1, 0, 0, 0, 0, loc)</code>
time.Date は、日付コンポーネントを取得します。単一の呼び出しにより、Time. Year().
のような個々のメソッドの不必要な繰り返しが排除されます。time.Date のドキュメントには、指定されたタイムゾーンの特定の日付と時刻に対応する時刻を返すことが明示的に記載されています。したがって、時、分、秒、およびナノ秒の 0 値を正確に処理し、結果として得られる時刻が目的のタイムゾーンの真夜中になることを保証します。
以上が特に夏時間の変更時に、Go で深夜に翌日を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。