動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石3: DateTimeのUTC統一で時刻ズレを潰す

出典: C# Newtonsoft.Json で業務系JSON処理を実戦投入する完全ガイド(.NET Framework 4.7.2 編)定石3: DateTimeのUTC統一で時刻ズレを潰す

定石3: DateTimeのUTC統一で時刻ズレを潰す (csharp)#4610d44165e1
// ❌ NG:既定設定でKind=Localをシリアライズすると、ローカル時刻が出力される
var bad = new { CreatedAt = DateTime.Now };  // Kind=Local
string badJson = JsonConvert.SerializeObject(bad);
// → {"CreatedAt":"2026-05-09T14:00:00+09:00"}  ← JST環境のローカル時刻
 
// ✅ OK: DateTimeZoneHandling.UtcでUTC強制
var settings = new JsonSerializerSettings
{
    DateTimeZoneHandling = DateTimeZoneHandling.Utc,
    DateFormatHandling = DateFormatHandling.IsoDateFormat,
};
 
var good = new { CreatedAt = DateTime.UtcNow };  // Kind=Utc
string goodJson = JsonConvert.SerializeObject(good, settings);
// → {"CreatedAt":"2026-05-09T05:00:00Z"}  ← UTC + Z表記
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #4610d44165e1
  • lines: 15
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石3: DateTimeのUTC統一で時刻ズレを潰す」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

5
図鑑トップ