我试图知道是否有办法让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
Run Code Online (Sandbox Code Playgroud)
它改变了时间和日期,使GMT成为中欧标准时间就好了,但IsDaylightSavingTime功能不会起作用.它总是返回false,因为我在系统上使用GMT,但我认为不应该因为我DateTime为中欧创建了一个.
有没有办法让DateTime对象f2真正本地化并让它理解如果它的八月并且是欧洲中心它应该返回true而不是false?
我知道如果我在机器上使用本地时间它可以正常工作,但我无法改变服务器上的GMT时间.我很乐意,但我不能.:-)
Man*_*nas 11
如果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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7695 次 |
| 最近记录: |