【发布时间】:2011-04-18 06:52:54
【问题描述】:
我需要使用 ASP.NET (C#) 或 JavaScript 查找客户端计算机的时区。全球有哪些不同的时区以及如何根据用户时区转换日期和时间。
请提供一些建议或示例编码以根据时区更改时间。
【问题讨论】:
标签: javascript asp.net timezone
我需要使用 ASP.NET (C#) 或 JavaScript 查找客户端计算机的时区。全球有哪些不同的时区以及如何根据用户时区转换日期和时间。
请提供一些建议或示例编码以根据时区更改时间。
【问题讨论】:
标签: javascript asp.net timezone
您无法从 ASP.NET 中找到客户端时区设置。
您可以使用 JavaScript 来告知当前时间,但有多个时区可以在任何给定时间同步。
在 Chrome 中,您可以从 JavaScript 日期对象中获取时区。从我发现的内容来看,它没有特定的功能,但是代码
(new Date()).toString()
会产生类似的东西
Mon Apr 18 2011 08:58:59 GMT+0200 (W. Europe Daylight Time)
在网站中,我发现的最佳方法是为每个用户设置一个设置来指定显示所有时间的时区。如果 JavaScript getUtcOffset 给出的偏移量与用户预期的偏移量不同时区,我会向用户显示一个通知,让他们查看他们的设置。如果可以从日期中猜出时区(我只发现在 chrome 中是这种情况),我会建议那个时区,但我仍然会为用户选择一个选择框手动选择时区。
即便如此,也有可能在脚本没有注意到的情况下设置了错误的时区,因为在一年中的大部分时间里,两个时区可能完全同步。
一旦你有了一个时区(你可以用System.TimeZoneInfo.GetSystemTimeZones()枚举它们),你可以分别用System.TimeZoneInfo.ConvertTimeFromUtc和System.TimeZoneInfo.ConverTimeToUtc来转换UTC日期。
【讨论】: