我试图知道是否有办法让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时间.我很乐意,但我不能.:-)