C#での日時をタイムゾーン付きのUTCに変換する方法


  1. タイムゾーンを指定して現在の日時をUTCに変換する方法:

    // 現在の日時を取得
    DateTime localDateTime = DateTime.Now;
    // タイムゾーンを指定
    TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("タイムゾーンのID");
    // 日時を指定したタイムゾーンのUTCに変換
    DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);

    タイムゾーンのIDには、"Asia/Tokyo"などのIANAタイムゾーン名や、"Tokyo Standard Time"などのWindowsタイムゾーン名を使用できます。

  2. 特定の日時をタイムゾーン付きのUTCに変換する方法:

    // 変換する日時を作成
    DateTime localDateTime = new DateTime(2022, 1, 1, 12, 0, 0);
    // タイムゾーンを指定
    TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("タイムゾーンのID");
    // 日時を指定したタイムゾーンのUTCに変換
    DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);

    上記の例では、"2022年1月1日12:00:00"を指定したタイムゾーンのUTCに変換しています。

  3. タイムゾーンIDを取得する方法:

    foreach (TimeZoneInfo timeZone in TimeZoneInfo.GetSystemTimeZones())
    {
       Console.WriteLine(timeZone.Id);
    }

    上記のコードを実行すると、システムで利用可能なすべてのタイムゾーンのIDが表示されます。

以上がC#で日時をタイムゾーン付きのUTCに変換する方法です。必要に応じて、上記のコード例を参考にしてください。