サマータイム

サマータイムへの対応

時差を求める

DateTimeOffset utcNow = DateTimeOffset.UtcNow;
// 2022/01/04 20:37:30 +00:00

DateTimeOffset now = DateTimeOffset.Now;
// 2022/01/05 5:37:30 +09:00

タイムゾーンにおけるサマータイムの時間差を求める

// タイムゾーン情報を取得
TimeZoneInfo currentTimeZone = TimeZoneInfo.Local;

// 現在時刻を取得
DateTimeOffset now = DateTimeOffset.Now;

// 夏時間から夏時間考慮なしの時間を引いて差分を計算する
TimeSpan diffDst = currentTimeZone.GetUtcOffset(now) - currentTimeZone.BaseUtcOffset;

サマータイムが適用されている時間と、もともとの時間の差分を計算する。

サマータイムの判定

// 現在時刻を取得
DateTimeOffset now = DateTimeOffset.Now;

// サマータイムかどうかの判定
currentTimeZone.IsDaylightSavingTime(now)
タイトルとURLをコピーしました