我有一个问题,我的时间已经过了一个小时.我正在尝试创建一个具有CT时区的时间.这样做,我有这行代码:
var zone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
Run Code Online (Sandbox Code Playgroud)
它显示了这个:
{(UTC-06:00)中部时间(美国和加拿大)}
为什么?现在是2018年7月12日,CT是UTC-05.那么为什么我的调试信息显示UTC-06?在VS调试器中,对象也有:
SupportsDaylightSavingTime = true
如果重要的话,我现在在ET,现在是UTC-04.
6小时的偏差来自TimeZoneInfo.BaseUtcOffset
属性,这是UTC与时区的标准时间之间的差异,而不是实际时间.
使用TimeZoneInfo.GetUtcOffset
以获得实际偏移
var zone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var baseOffset = zone.BaseUtcOffset; // UTC-06:00
var actualOffset = zone.GetUtcOffset(DateTime.UtcNow); // UTC-05:00
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
136 次 |
最近记录: |