我有一个托管的web应用程序,它根据工作日的每日结束数据生成报告。由于服务器位于欧洲(设置为UTC时间),me位于亚洲(UTC+5),我的老板和同事位于美国(UTC-5),我们似乎很难获得相同的日期。
例如,我这边的报告显示“2012年7月23日”,而在美国则是“2012年7月22日”。我使用RDP检查了服务器,它还显示了“2012年7月23日”。
在我的应用程序中没有本地化。我不确定这是ASP.NET、客户端JavaScript还是MySql,它们根据请求的来源更改日期?有什么想法吗?
编辑刚刚和我的老板联系了一下,他浏览器里的消息也显示了"2012-07-23“。因此,我认为这会缩小到JavaScript,更改调用new Date("2012-07-23")时的日期。
发布于 2012-07-23 21:32:22
如果您使用ISO Datetime,请确保在结束时指定一个时区,否则它将被计算为本地时间。
如果可能的话,当使用数据库和ASP.NET应用程序时,可以将UTC时间用于任何事情。
GETUTCDATE()
DateTime.UTCNow() 如果指定使用日期,则尽可能使用ISO日期来减少文化不变性。
发布于 2012-07-23 22:18:28
我认为你可以责怪你的JavaScript代码。使用像您这样的 constructor (new Date("2012-07-23"))并使用字符串调用Date.parse,如果没有指定,则使用本地时区。
使用ISO时间戳或从时代开始的毫秒。
当然,显示还有另一个作用。当您输出utc时间(解析为本地时区,作为本地时间)时,它将显示utc“正确”。如果将utc解析的utc-字符串输出为本地时间,它将正确显示本地时间。
https://stackoverflow.com/questions/11620796
复制相似问题