-
タイムゾーンを指定して現在の日時を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タイムゾーン名を使用できます。
-
特定の日時をタイムゾーン付きの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に変換しています。
-
タイムゾーンIDを取得する方法:
foreach (TimeZoneInfo timeZone in TimeZoneInfo.GetSystemTimeZones()) { Console.WriteLine(timeZone.Id); }
上記のコードを実行すると、システムで利用可能なすべてのタイムゾーンのIDが表示されます。
以上がC#で日時をタイムゾーン付きのUTCに変換する方法です。必要に応じて、上記のコード例を参考にしてください。