vb.net – DateTime.ToLocalTime()于2013年8月停止在XP上运行

我们在运行XP的客户PC上安装了一个VB.NET应用程序,看起来DateTime.ToLocalTime()已停止工作.

这个问题首先在2013年8月出现.

客户位于德克萨斯州,他们的时区是正确的.

DateTime.ToLocalTime()的文档有以下有趣的注释:

Windows XP系统上,ToLocalTime方法仅在从UTC转换为本地时将识别当前调整规则.因此,在当前调整规则生效之前的时段的转换可能无法准确反映UTC与本地时间之间的差异.

因此,可能在8月份的Windows Update中引入了时区规则更改,这导致了这种情况.

我发现了以下内容:http://support.microsoft.com/kb/2863058表示在2013年8月应用了累积时区更新,但似乎没有美国规则涉及此更改.

有没有其他人有这个问题的经验,并且(当然)有一个解决方案?

编辑

澄清一下.有问题的时间以UTC格式存储在SQL数据库中,我们将转换为LocalTime进行显示.这是引起问题的显示器.

在1500当地时间记录的事件现在显示为2100年记录的事件.

最佳答案 您能为客户重新编码产品吗?

您可以使用Format函数或DateTime.Now,它提供本地计算机的日期和时间详细信息

试一试:

        Textbox1.text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") 
        Textbox1.Text = Format(now, "yyyy-MM-dd hh:mm:ss")

您可以更改字符串中的日期时间详细信息,只需记住y =年,M =月,d =日,h =小时,m =分钟,s =秒.

如果你有一个后端数据库,我建议你从中获取时间. (这取决于数据库)

点赞