.net – Azure现在返回TimeZoneInfo.Local.Id而不是“UTC”的“Coordinated Universal Time”的无效值....

栏目: 编程工具 · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/15430368/azure-now-returns-invalid-value-of-coordinated-universal-time-for-timezoneinfo

从3月7日开始,东南亚地区的Azure服务器已经应用了修补程序,改变了.NET中TimeZoneInfo的行为.

将本地机器设置为“(UTC)协调世界时间”,然后运行以下代码得到“UTC”:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(TimeZoneInfo.Local.Id);
            Console.ReadLine();
        }
    }
}

远程进入我们的一个Azure实例并运行相同的应用程序产生以下结果:

“世界时间协调”

根据 .NET documentation ,这是StandardName属性应该返回的值,而不是Id属性.我们将此值传递给TimeZoneInfo.FindSystemTimeZoneById(),并且它失败,因为“协调通用时间”不是有效的Id(“UTC”).此时区是StandardName属性与Id属性不匹配的3之一.

在3月7日之前,Azure实例总是返回正确的“UTC”值.我们暂时硬编码为“UTC”作为一个停顿的解决方案.

有人有什么想法为什么会这样改变,处理这种情况的适当长期解决办法是什么?

目前,Windows Azure中的时区是太平洋标准时间(PST).他们已经迁移到协调世界时(UTC).这可能是依赖当地时间的应用程序的突破性变化.

我们为什么要这样做呢?

Windows Azure是一项全球性服务.为了确保应用程序的行为方式相同,无论其物理位置如何,重要的是Windows Azure在所有地理位置都具有一致的时区. UTC是全球客户群的自然选择,UTC不受夏令时(以及相关风险的错误).

对您有什么潜在影响?

如果您在Windows Azure中运行的应用程序依赖于本地时间,则会受到向UTC迁移的影响.以下是潜在问题的几个例子:

如果使用本地时间戳,事件日志中可能会发生间隙.

依赖本地时间戳的用户界面可能会显示不同的结果.

您的应用程序存储的本地时间戳可能会在切换后被不同的解释.

许多应用程序已经被设计为仅依赖于UTC时间.这些应用程序应该不受影响.

如果您希望他们将其更改,或者您有任何其他问题,可以在以下博客链接中与他们联系:

Windows Azure blog

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/15430368/azure-now-returns-invalid-value-of-coordinated-universal-time-for-timezoneinfo


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

颠覆者:周鸿祎自传

颠覆者:周鸿祎自传

周鸿祎、范海涛 / 北京联合出版公司 / 2017-11 / 49.80元

周鸿祎,一个在中国互联网历史上举足轻重的名字。他被认为是奠定当今中国互联网格局的人之一。 作为第一代互联网人,中国互联网行业最好的产品经理、创业者,他每时每刻都以自己的实践,为互联网的发展贡献自己的力量。 在很长一段时间内,他没有在公共场合发声,甚至有粉丝对当前死水一潭的互联网现状不满意,发出了“人民想念周鸿祎”的呼声。 但周鸿祎在小时候,却是一个踢天弄井,动不动就大闹天宫的超级......一起来看看 《颠覆者:周鸿祎自传》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具