UTCからJST、JSTからUTCへ変換する
UTCからJSTへの変換
UTCからJSTへ変換します。
JSTのTimeZoneInfoを取得し、TimeZoneInfoクラスのConvertTimeFromUTC()メソッドにJSTのTimeZoneInfoを与えて呼び出すことで、UTC時間をJSTに変換できます。
コード
protected void Button1_Click(object sender, EventArgs e)
{
try {
DateTime utc_input= System.DateTime.ParseExact(TextBox1.Text, "HH:mm:ss.fff",
System.Globalization.DateTimeFormatInfo.InvariantInfo,
System.Globalization.DateTimeStyles.NoCurrentDateDefault);
TimeZoneInfo jstZoneInfo = System.TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
DateTime jst = System.TimeZoneInfo.ConvertTimeFromUtc(utc_input, jstZoneInfo);
string str = jst.ToString("HH:mm:ss fff");
TextBox2.Text = str;
}
catch (ArgumentNullException exc) {
}
catch (FormatException exc) {
}
}
解説
DateTime utc_input = System.DateTime.ParseExact(TextBox1.Text, "HH:mm:ss.fff",
System.Globalization.DateTimeFormatInfo.InvariantInfo,
System.Globalization.DateTimeStyles.NoCurrentDateDefault);
テキストボックスに入力された文字をDateTime型に変換します。入力フォーマットは"HH:mm:ss.fff"を受け付けます。
TimeZoneInfo jstZoneInfo = System.TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
にて、JSTのTimeZoneInfoを取得します。
DateTime jst = System.TimeZoneInfo.ConvertTimeFromUtc(utc_input, jstZoneInfo);
にて、ConvertTimeFromUtc()メソッドを呼び出し、入力されたUTC時間をJSTL時間に変換します。
string str = jst.ToString("HH:mm:ss fff");
TextBox2.Text = str;
変換されたJST時間をTextBox2に表示します。
JSTからUTCへの変換
JSTのTimeZoneInfoを取得し、TimeZoneInfoクラスのConvertTimeToUTC()メソッドにJSTのTimeZoneInfoを与えて呼び出すことで、UTC時間をJSTに変換できます。
コード
private void button6_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 jstZoneInfo = System.TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
DateTime local = TimeZoneInfo.ConvertTimeToUtc(input, jstZoneInfo);
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);
テキストボックスに入力された文字をDateTime型に変換します。入力フォーマットは"HH:mm:ss","HH:mm"を受け付けます。
TimeZoneInfo jstZoneInfo = System.TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
JSTのTimeZoneInfoを取得します。
DateTime local = TimeZoneInfo.ConvertTimeToUtc(input, jstZoneInfo);
ConvertTimeToUtc()メソッドを呼び出してJSTをUTCに変換します。
textBox2.Text = local.ToString("HH:mm");
変換したUTCの時刻をTextBox2に表示します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用