また、DateTime・DateTimeOffsetで扱える日時の精度は100ナノ秒となっています。 Ticksプロパティを参照すると、日時を100ナノ秒単位での値で取得することができます。
コンストラクタでも100ナノ秒単位の値を指定する事ができ、最小値である0001年1月1日 0時0分0秒に指定した値を加えた値がインスタンスの表す日時となります。
DateTime/DateTimeOffset.Ticksプロパティで100ナノ秒単位の値を取得する
using System;
class Sample {
static void Main()
{
Console.WriteLine("[DateTime]");
Console.WriteLine(DateTime.MinValue.Ticks);
Console.WriteLine(DateTime.MaxValue.Ticks);
// 30,000,000 × 100ナノ秒 = 3秒
Console.WriteLine(new DateTime(30000000));
Console.WriteLine();
Console.WriteLine("[DateTimeOffset]");
Console.WriteLine(DateTimeOffset.MinValue.Ticks);
Console.WriteLine(DateTimeOffset.MaxValue.Ticks);
// 30,000,000 × 100ナノ秒 = 3秒
Console.WriteLine(new DateTimeOffset(30000000, TimeSpan.Zero));
}
}
実行結果例
[DateTime] 0 3155378975999999999 0001/01/01 0:00:03 [DateTimeOffset] 0 3155378975999999999 0001/01/01 0:00:03 +00:00