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

【C#入門】DateTime.ToUniversalTime()メソッドで日時をUTC(協定世界時)に変換する方法

C#のDateTime.ToUniversalTime()メソッドは、現在のDateTimeオブジェクトが持つ値を協定世界時(UTC)に変換するために使用されます。タイムゾーンをまたぐアプリケーション開発では、時刻の比較や保存をUTCで統一するのが一般的なため、このメソッドは非常に重要です。

構文

ToUniversalTime()メソッドの構文は以下のとおりです。

public DateTime ToUniversalTime();

引数は不要で、戻り値としてUTCに変換された新しいDateTimeオブジェクトが返されます。

使用例1:基本的な使い方

まずは、DateTimeオブジェクトに対してToUniversalTime()メソッドを使用する基本例を見てみましょう。

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:文字列から解析したローカル時刻をUTCへ変換

続いて、文字列として表現された日時をDateTime.Parse()メソッドで解析し、その後ToUniversalTime()メソッドで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

補足:Kindプロパティによる動作の違い

ToUniversalTime()メソッドの挙動は、元のDateTimeオブジェクトのKindプロパティによって変わる点に注意が必要です。

  • Kind.Localの場合:システムのタイムゾーン設定に基づいて、ローカル時刻からUTCへ変換されます。
  • Kind.Utcの場合:すでにUTCであるため、同じ値がそのまま返されます。
  • Kind.Unspecifiedの場合:ローカル時刻として扱われ、UTCへの変換が行われます。

このように、ToUniversalTime()メソッドを活用することで、異なるタイムゾーン間でも一貫性のある時刻処理を実現できます。サーバーとクライアントでタイムゾーンが異なるWebアプリケーションやクラウドサービスの開発では、特に役立つメソッドです。

  1. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動

  2. C#のDateTime.Add()メソッドとは?構文と使い方を実例付きで解説

    C#のDateTime.Add()メソッドは、指定したTimeSpanの値を現在のDateTimeインスタンスに加算し、その結果として新しいDateTimeオブジェクトを返すメソッドです。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして生成される点が特徴です。基本構文DateTime.Add()メソッドの構文は以下の通りです。public DateTime Add (TimeSpan val);引数 val には、加算する時間間隔を表す TimeSpan を指定します。正の値を渡せば日時が進み、負の値を渡せば日時が遡ります。使用例1:日付を加算するまずは、115日分のTim