在C#中,如果Windows系统不遵守DST,如何将其从Windows系统时间转换为EDT?

我们有一个Windows系统,该系统设置为调整DST时间。当然,在我们的示例EDT中,我们需要以挂钟时间向用户显示正确的时间。

在较早(更旧)的系统中,我们必须定义时钟前进或后退一个小时的日期,并根据我们是否处于DST的天气来转换时间。

在使用c#的Windows系统中如何工作?

即使设置为不调整,Windows是否也知道它在DST中的时间?

我怀疑只有在您的系统设置为调整DST时,转换才有效。我错了吗?

woshijxsd0001 回答:在C#中,如果Windows系统不遵守DST,如何将其从Windows系统时间转换为EDT?

这将返回美国东部时区的当前时间,同时考虑到EST和EDT:

TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow,tz);

在其上运行的计算机是否启用了DST,或者是否完全位于其他时区,都没有关系。命名时区将使用该时区的完整规则。

对于设置为禁用自动夏令时调整的系统,.NET仅在与 local 时区进行转换时会考虑到这一点。换句话说,使用TimeZoneInfo.LocalDateTime.ToLocalTimeDateTime.ToUniversalTime(来自当地时间 )等时

此外,通常不建议Windows系统的用户禁用自动DST功能。禁用它的选项主要是旧配置。相反,用户只需为他们所在的位置选择正确的时区即可。

本文链接:https://www.f2er.com/3107550.html

大家都在问