С 7 марта появляется сообщение о том, что на серверах Azure в регионе Юго-Восточной Азии применен патч, который изменил поведение TimeZoneInfo в .NET.
Настройка моей локальной машины на "(UTC)" Скоординированное универсальное время ", а затем запуск следующего кода дает" UTC ":
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(TimeZoneInfo.Local.Id);
Console.ReadLine();
}
}
}
Перемещение в один из наших экземпляров Azure и запуск этого же приложения дает следующее:
"Скоординированное универсальное время"
Согласно .NET документации, это значение, которое должно быть возвращено свойством StandardName, а не свойством Id. Мы передаем это значение в TimeZoneInfo.FindSystemTimeZoneById(), и он терпит неудачу, поскольку "Скоординированное универсальное время" не является допустимым идентификатором ( "UTC" is). Этот часовой пояс является одним из 3, свойство StandardName которого не соответствует свойству Id.
До 7 марта экземпляры Azure всегда возвращали правильное значение "UTC" . У нас есть жестко запрограммированный "UTC" в настоящее время как временное решение.
Есть ли у кого-нибудь идеи, почему это изменилось таким образом, и каково надлежащее долгосрочное решение для решения этой ситуации?