問題点
指定された日付に 1 日を加算するのは簡単そうに思えるかもしれませんが、タイムゾーンが変更される地域では複雑な問題が発生します。単純な時間計算を使用すると、特にタイムゾーンが異なる場合に不正確な結果が生じる可能性があります。
提案された解決策
精度を確保するには、time.Date() を使用することをお勧めします。 1 日を追加します。このメソッドでは、場所のタイムゾーンが考慮されます。
<code class="go">t2 := time.Date(givenDate.Year(), givenDate.Month(), givenDate.Day()+1, 0, 0, 0, 0, loc)</code>
ソリューションの最適化
効率を高めるために、Time.Date() が返すという事実を利用できます。単一の呼び出しで日付コンポーネントを使用できます。これにより、Time. Year()、Time.Month()、および Time.Day() を個別に呼び出す必要がなくなります。これらのメソッドは、内部で 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() のドキュメントには、指定された場所が考慮されることが明示的に記載されています。
。場所を指定することで、この方法ではタイムゾーンのシフトが計算に確実に組み込まれ、その結果、正確な翌日が決定されます。Date は、
に対応する時間を返します。 🎜>yyyy-mm-dd hh:mm:ss nsec ナノ秒その時間の適切なゾーン
指定された場所
以上がタイムゾーンの変更を考慮しながら日付に正確に日を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。