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にローカル時間を表示します。