为什么在系统时钟设置为香港时间的情况下,无法将此字符串解析为DateTimeOffset?

时间:2019-05-01 17:10:13

标签: c# datetimeoffset

如果您更改系统时钟

FROM:,例如香港时间或中国标准时间(UTC +8)

收件人: EST美国东部标准时间(UTC -5)

然后下面的代码将起作用。

如果时钟未设置为EST,DateTimeOffset是否不喜欢“ 0001-01-01T00:00:00”?

string token = "0001-01-01T00:00:00";
if (!DateTimeOffset.TryParse(token, out var offsetDate))
{
   Console.WriteLine(“Why?”);
}

为什么...?

1 个答案:

答案 0 :(得分:3)

如果您处于EST时间,则该值表示UTC时间大于1/1/0001 12:00:00 AM +00:00,这是DateTimeOffset的最小值。所以你还好。

如果您在香港时间,则该值将小于DateTimeOffset.MinValue。该值不能表示为DateTimeOffset,因此TryParse失败。