在 C# 中硬编码 UTC 日期时间值(1601 年 1 月 1 日午夜 12:00 A.D。(C.E),UTC

Hardcode UTC DateTime value (12:00 midnight, January 1, 1601 A.D. (C.E.), UTC) in C#

我有一个 UTC 日期时间值:12:00 1601 年 1 月 1 日午夜 A.D。 (C.E.), UTC

如何在 C# 中硬编码此 UTC 日期时间值

if (job.DateTimeValue == <UTC value>)

DateTime 类型有一个允许您设置的构造函数:

  • Year
  • Month
  • Day
  • Hour
  • Minute
  • Second
  • Millisecond
  • DateTimeKind(UTC,本地,未指定)

var jobMinDateValue = new DateTime(1601, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

if (job.DateTimeValue == jobMinDateValue)
{
    // ...
}

12:00 1601 年 1 月 1 日午夜 A.D。 (C.E.),UTC恰好是Windows上的一个特殊日期&时间...Windows表示FileTime为100纳秒的数自 1601 年 1 月 1 日 12:00 午夜 A.D 以来经过的时间间隔。 (C.E。)协调世界时 (UTC)。

这意味着在 FileTime 中,值 0 意味着 12:00 midnight, January 1, 1601 A.D. (C.E.), UTC

这为您提供了另一种方法来获得您正在寻找的相同值:

var jobMinDateValue = DateTime.FromFileTimeUtc(0);

if (job.DateTimeValue == jobMinDateValue)
{
    // ...
}