C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で現在のDateTimeオブジェクトの値をUTC(協定世界時)に変換する方法

C#で現在のDateTimeオブジェクトの値を協定世界時(UTC:Coordinated Universal Time)に変換するには、ToUniversalTime()メソッドを使用します。このメソッドは、呼び出し元のDateTimeオブジェクトの時刻をUTCに変換した新しいDateTimeオブジェクトを返します。

例1:基本的な使い方

まずは、DateTimeオブジェクトを作成してUTCに変換する基本的な例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTime d = new DateTime(2019, 12, 11, 7, 11, 25);
      Console.WriteLine("Date = {0}", d);
      DateTime res = d.ToUniversalTime();
      Console.WriteLine("String representation = {0}", res);
   }
}

出力

上記のコードを実行すると、次のような出力が得られます。

Date = 11/11/2019 7:11:25 AM
String representation = 11/11/2019 7:11:25 AM

例2:文字列から解析した日時を変換する

次に、文字列として与えられた日時をParseメソッドで解析し、その結果をUTCに変換する例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTime localDate, universalDate;
      String str = "11/11/2019 4:10:55";
      localDate = DateTime.Parse(str);
      universalDate = localDate.ToUniversalTime();
      Console.WriteLine("Local time = {0} ", localDate);
      Console.WriteLine("Universal time = {0} ", universalDate);
   }
}

出力

上記のコードを実行すると、次のような出力が得られます。

Local time = 11/11/2019 4:10:55 AM
Universal time = 11/11/2019 4:10:55 AM

ポイント解説

ToUniversalTime()メソッドの動作は、DateTimeオブジェクトのKindプロパティの値によって異なります。

  • DateTimeKind.Localの場合:ローカル時刻からUTCへ正しく変換されます。
  • DateTimeKind.Utcの場合:すでにUTCであるため、元の値がそのまま返されます。
  • DateTimeKind.Unspecifiedの場合:ローカル時刻として扱われた上でUTCに変換されます。

なお、実行環境のタイムゾーンがすでにUTC(協定世界時)に設定されている場合、ローカル時刻とUTCの値は同じになります。上記の出力例では両者が一致しているのはこのためです。日本標準時(JST、UTC+9)の環境で実行した場合は、UTCへの変換時に9時間前の時刻が表示されます。

  1. 【Python入門】タイムスタンプを日時オブジェクトに変換する方法をわかりやすく解説

    Pythonでは、標準ライブラリの datetime モジュールに含まれる fromtimestamp() 関数を使うことで、UNIXタイムスタンプ(エポック秒)から日時オブジェクトへ簡単に変換できます。この関数はタイムスタンプを引数として受け取り、それに対応する datetime オブジェクトを返します。 基本の使い方:fromtimestamp() 以下の例では、UNIXタイムスタンプ「1500000000」を日時オブジェクトに変換し、読みやすい形式の文字列として出力しています。 import datetime timestamp = datetime.datetime.fromtime

  2. 【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法

    Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format