C# 为什么可以';我把这个字符串解析成DATETMETROBY,我的系统时钟设置为香港时间?
如果你改变你的系统时钟 <>强>从:< /强>例如香港时间或中国标准时间(UTC + 8)< /P> 至:东部标准时间(UTC-5) 那么下面的代码就可以工作了 如果时钟未设置为EST,DateTimeOffset不喜欢“0001-01-01T00:00:00”C# 为什么可以';我把这个字符串解析成DATETMETROBY,我的系统时钟设置为香港时间?,c#,datetimeoffset,C#,Datetimeoffset,如果你改变你的系统时钟 强>从:< /强>例如香港时间或中国标准时间(UTC + 8)< /P> 至:东部标准时间(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(“W
string token = "0001-01-01T00:00:00";
if (!DateTimeOffset.TryParse(token, out var offsetDate))
{
Console.WriteLine(“Why?”);
}
为什么…?如果您在EST时间,则该值表示UTC时间大于1/1/0001 12:00:00 AM+00:00,这是
日期时间偏移量的最小值。所以你没事
如果您在香港时间上,该值将小于<代码> DATEMEMPLOSS.MIN值< /代码>。该值不能表示为
DateTimeOffset
,因此TryParse
失败。这是正确的。但还要注意,如果输入时间是UTC,则可以通过在输入字符串中包含尾随的Z
或将DateTimeStyle.AssumeUniversal
传递到TryParse
方法来避免这种情况。