我们有一个Windows系统,该系统设置为不调整DST时间。当然,在我们的示例EDT中,我们需要以挂钟时间向用户显示正确的时间。
在较早(更旧)的系统中,我们必须定义时钟前进或后退一个小时的日期,并根据我们是否处于DST的天气来转换时间。
在使用c#的Windows系统中如何工作?
即使设置为不调整,Windows是否也知道它在DST中的时间?
我怀疑只有在您的系统设置为调整DST时,转换才有效。我错了吗?
我们有一个Windows系统,该系统设置为不调整DST时间。当然,在我们的示例EDT中,我们需要以挂钟时间向用户显示正确的时间。
在较早(更旧)的系统中,我们必须定义时钟前进或后退一个小时的日期,并根据我们是否处于DST的天气来转换时间。
在使用c#的Windows系统中如何工作?
即使设置为不调整,Windows是否也知道它在DST中的时间?
我怀疑只有在您的系统设置为调整DST时,转换才有效。我错了吗?
这将返回美国东部时区的当前时间,同时考虑到EST和EDT:
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow,tz);
在其上运行的计算机是否启用了DST,或者是否完全位于其他时区,都没有关系。命名时区将使用该时区的完整规则。
对于设置为禁用自动夏令时调整的系统,.NET仅在与 local 时区进行转换时会考虑到这一点。换句话说,使用TimeZoneInfo.Local
或DateTime.ToLocalTime
或DateTime.ToUniversalTime
(来自当地时间 )等时
此外,通常不建议Windows系统的用户禁用自动DST功能。禁用它的选项主要是旧配置。相反,用户只需为他们所在的位置选择正确的时区即可。