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

C#のDateTime.ToBinary()メソッドの使い方を徹底解説

DateTime.ToBinary()メソッドとは

C#のDateTime.ToBinary()メソッドは、現在のDateTimeオブジェクトを、後から同じオブジェクトとして復元できる64ビットのバイナリ値にシリアル化するためのメソッドです。

戻り値は64ビット符号付き整数(long型)となり、この値を保存しておけば、あとから日付と時刻の情報を正確に再現することが可能です。

構文

このメソッドの構文は以下の通りです。

public long ToBinary ();

引数は取らず、呼び出し元のDateTimeオブジェクトをシリアル化した結果をlong型で返します。

使用例1:固定の日時をシリアル化する

まずは、特定の日時を持つDateTimeオブジェクトに対してToBinary()メソッドを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 10, 10, 8, 10, 40);
        Console.WriteLine("Date = {0}", d);
        long res = d.ToBinary();
        Console.WriteLine("64-bit binary value : {0}", res);
    }
}

出力結果

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

Date = 10/10/2019 8:10:40 AM
64-bit binary value : 637062918400000000

使用例2:現在日時をシリアル化する

続いて、DateTime.Nowで取得した現在日時をToBinary()メソッドでシリアル化する例です。

using System;
public class Demo {
    public static void Main() {
        DateTime d = DateTime.Now;
        Console.WriteLine("Date = {0}", d);
        long res = d.ToBinary();
        Console.WriteLine("64-bit binary value : {0}", res);
    }
}

出力結果

実行したタイミングによって値は変わりますが、例えば次のような出力になります。

Date = 10/16/2019 8:15:56 AM
64-bit binary value : -8586303931293472296

ポイント:Kindプロパティも一緒に保持される

ToBinary()メソッドで生成される64ビットの値には、日時の情報だけでなく、DateTimeオブジェクトが持つKindプロパティ(Local・Utc・Unspecified)の情報もエンコードされています。これにより、ローカル時刻とUTC(協定世界時)の区別を保ったままシリアル化できるのが特徴です。

補足:FromBinary()メソッドで復元する

シリアル化された値から元のDateTimeオブジェクトを復元したい場合は、静的メソッドであるDateTime.FromBinary(long)を使用します。ファイルやデータベースに日時情報を保存し、後から読み込んで再利用するようなシナリオで、ToBinary()とFromBinary()はセットで活用されます。

  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