0

我有一个托管的 Web 应用程序,它根据每日工作日结束数据生成报告。由于服务器位于欧洲(设置为使用 UTC 时间),我位于亚洲 (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")调用日期的范围。

4

2 回答 2

0

如果您使用 ISO 日期时间,请确保最后指定时区,否则将被视为本地时间。

如果可能,在使用数据库和 ASP.NET 应用程序时,一切都使用 UTC 时间。

GETUTCDATE() 

DateTime.UTCNow() 

如果您指定使用日期,则尽可能使用 ISO 日期以减少文化差异。

于 2012-07-23T21:32:22.373 回答
0

我认为你可以责怪你的 JavaScript 代码。使用像你这样的Date构造函数new Date("2012-07-23")( ) 和字符串调用Date.parse,如果未指定,则使用本地时区。

使用 ISO 时间戳或自纪元以来的毫秒数。

当然,展示还有另一个作用。当您输出 utc 时间,解析为本地时区,作为本地时间,它将“正确”显示 utc。如果您将 utc-parsed 的 utc-string 输出为本地时间,它将正确显示本地时间。

于 2012-07-23T22:18:28.053 回答