gpt4 book ai didi

c# - 有没有办法让 DateTime.IsDaylightSavingTime 在具有 GMT/UTC 时间的机器上工作?

转载 作者:太空狗 更新时间:2023-10-30 00:16:08 26 4
gpt4 key购买 nike

我想知道是否有办法让 DateTime 对象在设置为 GMT 时间的操作系统上获得所有正确的属性。不仅仅是改变时间。

我现在正在做的是:

DateTime f = new DateTime(2012, 8, 1); //A date on summer

DateTime f2 = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(f, TimeZoneInfo.Local.Id, "Central Europe Standard Time");

var isSummer = f2.IsDaylightSavingTime(); //It always returns false if the OS is on GMT

它会更改小时和日期,使 GMT 成为欧洲中部标准时间,但 IsDaylightSavingTime 功能将不起作用。它总是返回 false,因为我在系统上使用 GMT,但我认为它不应该,因为我为中欧创建了一个 DateTime

有没有办法让 DateTime 对象 f2 真正是本地的,并让它明白如果它是八月并且是欧洲中部,它应该返回 true 而不是 false?

我知道如果我在机器上使用本地时间它会工作正常,但我无法更改服务器上的 GMT 时间。我很想,但我做不到。 :-)

最佳答案

如果 Kind 是 Local 或 Unspecified,DateTime.IsDayLightSavingTime 返回 true,并且 DateTime 的这个实例的值在当前时区的夏令时范围内

即DateTime 对象检查系统时区,由于 UTC 不支持夏令时,它返回 true。

如果要验证,如果指定的时间属于某个时区的夏令时,则使用 TimeZoneInfo 中的 IsDayLightSavingTime 方法

DateTime f = new DateTime(2012, 8, 1); //A date on summer 
TimeZoneInfo tzf2=TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
DateTime f2 = TimeZoneInfo.ConvertTime(f, tzf2);
var isSummer = tzf2.IsDaylightSavingTime(f2);

关于c# - 有没有办法让 DateTime.IsDaylightSavingTime 在具有 GMT/UTC 时间的机器上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com