我们在运行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 =秒.
如果你有一个后端数据库,我建议你从中获取时间. (这取决于数据库)