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

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

内容简介:代码日志版权声明:翻译自: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


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

查看所有标签

猜你喜欢:

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

计算几何

计算几何

邓俊辉 / 清华大学出版社 / 2009-6 / 49.00元

《计算几何:算法与应用(第3版)》的前4章对几何算法进行了讨论,包括几何求交、三角剖分、线性规划等,其中涉及的随机算法也是《计算几何:算法与应用(第3版)》的一个鲜明特点。第5章至第10章介绍了多种几何结构,包括几何查找、kd树、区域树、梯形图、Voronoi图、排列、Delaunay三角剖分、区间树、优先查找树以及线段树等。第11章至第16章结合实际问题,继续讨论了若干几何算法及其数据结构,包括......一起来看看 《计算几何》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

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

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码