使用c#检测客户端的时区

时间:2016-04-18 18:40:26

标签: c# asp.net webforms timezone

我正在使用ASP.NET Webforms来获取客户端的数据。到现在为止,我想出了客户端和城市的IP地址。客户的国家。我试图找到一种如何使用其IP地址或国家名称或城市名称检索时区的方法。我已经google了,找不到任何合适的答案,因为每个人都在谈论注入javascript来获取时区。 我的问题是:有没有办法找到客户的时区?如果是,那怎么样?`

2 个答案:

答案 0 :(得分:3)

纯粹使用C#无法以可靠的方式完成此操作。 HTTP规范不提供客户端时区的任何提示。

您可以使用IP地理位置在客户的时区猜测,并且有许多提供时区信息的免费和商业服务。然而,采用这种方法的准确度有限。

即使使用JavaScript,当前的解决方案仍然只能猜测客户端的时区。在ECMAScript Intl API中有改进,但并非所有浏览器都完全实现了。 See more here

最终,如果您需要从后端代码了解客户端的时区,最好的办法是询问用户。在您的应用程序中的某个位置提供时区选择器。

您可能还会发现this related answer有用。

答案 1 :(得分:0)

您是否尝试过使用 TimeZoneInfo类 它代表了世界上任何时区。

https://msdn.microsoft.com/en-us/library/system.timezoneinfo(v=vs.110).aspx