.net 找到客户';通过web服务实现时区和文化

.net 找到客户';通过web服务实现时区和文化,.net,ajax,internationalization,cross-browser,.net,Ajax,Internationalization,Cross Browser,我有一个.NETWeb服务 它服务于web用户的AJAX请求 我只是想知道如何自动获取用户的时区。。。不是当前的时间偏移,而是实际的时区,比如现在的中央标准时间是-5:00,但是一旦夏令时结束,东部标准时间将是-5:00。我想区分这些用户 我还想知道如何获得他们的文化设置(“en-US”,等等),这样我就可以根据他们的特定偏好呈现我的web服务中的日期时间和数字 任何Javascript或.NET解决方案都可以工作。 谢谢 注意:询问用户是万不得已的选择,因为这是一项web服务 请求中包含时区是

我有一个.NETWeb服务

它服务于web用户的AJAX请求

我只是想知道如何自动获取用户的时区。。。不是当前的时间偏移,而是实际的时区,比如现在的中央标准时间是-5:00,但是一旦夏令时结束,东部标准时间将是-5:00。我想区分这些用户

我还想知道如何获得他们的文化设置(“en-US”,等等),这样我就可以根据他们的特定偏好呈现我的web服务中的日期时间和数字

任何Javascript或.NET解决方案都可以工作。 谢谢


注意:询问用户是万不得已的选择,因为这是一项web服务

请求中包含时区是RFC草案的主题

由于未实现此功能,因此唯一的解决方案是在JavaScript中获取UTC偏移量:

// create Date object for current location
d = new Date();
// convert to msec since Jan 1 1970
localTime = d.getTime();
// obtain local UTC offset and convert to msec
localOffset = d.getTimezoneOffset() * 60000;

假设您的客户端从浏览器连接到Web服务,您可以使用Request.Headers[“Accept Language”]检测浏览器的区域性设置。无法直接从服务器获取时区,您需要客户端上的一些javascript来计算其本地时钟和GMT之间的时差


如果Web服务的使用方式不同(即不是从浏览器),则需要将这两条信息作为参数添加到Web服务方法中。

您最好通过服务的参数“询问用户”。例如,用户的位置不会告诉你,他们只是访问该位置,并且仍然在他们的家庭时间工作;或者他们在一个多元文化的地区(如瑞士),选择了你意想不到的文化(法语,当你期待德语时)。

Argh-这真是个累赘。我希望我生活在公元3000年,并且让我所有的用户信息都像高果糖玉米糖浆一样提供。@John,谢谢,我希望有一种新的方式来获取这些数据。不过请让用户选择。。。不是每个人都在浏览器中使用他们的本地语言。并不是每个人都在他们居住的国家使用他们的母语。(例如,我不想看到希腊格式的文本,因为我碰巧从希腊登录)。