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