目次

UTCからシステムのローカル時刻へ変換する - C#

UTCからシステムのローカル時刻に変換します。
ローカルのTimeZoneInfoを取得し、TimeZoneInfoクラスのConvertTimeFromUTC()メソッドに変換元のTimeZoneInfoを与えて呼び出すことで、UTC時間をローカルの時刻に変換できます。

コード

private void button_Click(object sender, EventArgs e)
{
  string[] Formats = { "HH:mm:ss","HH:mm" };

  DateTime input = System.DateTime.ParseExact(textBox1.Text, Formats,
    System.Globalization.DateTimeFormatInfo.InvariantInfo,
    System.Globalization.DateTimeStyles.NoCurrentDateDefault);

  TimeZoneInfo tzi = TimeZoneInfo.Local;
  DateTime local = TimeZoneInfo.ConvertTimeFromUtc(input, tzi);
  textBox2.Text = local.ToString("HH:mm");
}

解説

string[] Formats = { "HH:mm:ss","HH:mm" };

DateTime input = System.DateTime.ParseExact(textBox1.Text, Formats,
  System.Globalization.DateTimeFormatInfo.InvariantInfo,
  System.Globalization.DateTimeStyles.NoCurrentDateDefault);
TextBox1に入力された文字列をDateTimeに変換します。受け付けるパターンは "HH:mm:ss"と"HH:mm"の2種類です。

TimeZoneInfo tzi = TimeZoneInfo.Local;
システムのローカルのTimeZoneInfoを取得します。

DateTime local = TimeZoneInfo.ConvertTimeFromUtc(input, tzi);
UTC時間をローカル時間に変換します。

textBox2.Text = local.ToString("HH:mm");
textBox2にローカル時間を表示します。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-06
作成日: 2011-08-27
iPentec all rights reserverd.