我来自俄罗斯,1.5 天前(10 月 26 日凌晨 2 点)我们的时区(好吧,我们时区的偏移量)发生了变化 - 从 UTC+4 变为 UTC+3。请不要问为什么现在 - ******** 政府已经退出了:( 但它改变了。
我家的Win 8.1机器自动更新。
但我的 Azure 资源仅更新了一项(!)。一项云服务已更新,而另外一项云服务和 4 个网站未更新 - 它们仍处于 UTC+4 偏移量。
我知道,所有 Azure 服务器的设置均采用 UTC,但我谈论的是它们的 TimeZoneInfo 数据。
我请求
var tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time")
这个时区仍然是
(UTC+04:00) 莫斯科、圣彼得堡、伏尔加格勒
当我的家用机器处于
(UTC+03:00) 莫斯科、圣彼得堡、伏尔加格勒 (RTZ 2)
AFAIK,这取决于服务器上的系统更新 - 新的时区数据必须在实际发生任何时间更改之前到达。但是为什么服务器不更新呢?
我的一个 CloudService 现在工作正常,显示正确的时区信息(无法显示),因此至少一台服务器已正确更新,而其他服务器则没有。
我做了一个小网站来测试这个:http://timezonetest Russia.azurewebsites.net/ http://timezonetestrussia.azurewebsites.net/(来源:https://github.com/justdmitry/AzureTimeZoneTest https://github.com/justdmitry/AzureTimeZoneTest )
它显示 TimeZoneInfo.Local 信息和“俄罗斯标准时间”。此时,它在 Azure 中显示如下:
Id
Russian Standard Time
DisplayName
(UTC+04:00) Moscow, St. Petersburg, Volgograd
StandardName
Russian Standard Time
DaylightName
Russian Daylight Time
BaseUtcOffset
04:00:00
SupportsDaylightSavingTime
True
DateTimeOffset.UtcNow
10/27/2014 2:37:58 PM +00:00
TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tz)
10/27/2014 6:37:58 PM +04:00
在我的本地计算机上它显示:
Id
Russian Standard Time
DisplayName
(UTC+03:00) Moscow, St. Petersburg, Volgograd (RTZ 2)
StandardName
Russia TZ 2 Standard Time
DaylightName
Russia TZ 2 Daylight Time
BaseUtcOffset
03:00:00
SupportsDaylightSavingTime
True
DateTimeOffset.UtcNow
27.10.2014 14:33:50 +00:00
TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tz)
27.10.2014 17:33:50 +03:00