C# Datetime。现在错误地确定了我的位置

C# Datetime。现在错误地确定了我的位置,c#,datetime,localization,locale,C#,Datetime,Localization,Locale,我有一个网站,使用代码Datetime.Now显示当前日期。据我所知,Datetime.Now应该按照查看器当前区域设置中显示的时间来显示当前时间 目前,当我在localhost上测试时,网站正在正确地确定我的位置(en nz)并显示正确的日期。然而,当我现场运行该网站时,我得到的是一个不同的日期 那么,系统如何确定查看器的区域设置,以及为什么我的站点显示Datetime.Now local和live的方式存在差异?否,Datetime。Now将检索运行它的机器的本地时区中的当前时间。换言之,假

我有一个网站,使用代码
Datetime.Now
显示当前日期。据我所知,Datetime.Now应该按照查看器当前区域设置中显示的时间来显示当前时间

目前,当我在localhost上测试时,网站正在正确地确定我的位置(en nz)并显示正确的日期。然而,当我现场运行该网站时,我得到的是一个不同的日期


那么,系统如何确定查看器的区域设置,以及为什么我的站点显示Datetime.Now local和live的方式存在差异?

否,
Datetime。Now
将检索运行它的机器的本地时区中的当前时间。换言之,假设您正在编写一个web应用程序(您还没有明确说明),那么您的情况下的web服务器就是

如果您想在浏览器的本地时区显示它,最好发送
DateTime.UtcNow
并编写一些JavaScript将其转换为本地时间。。。或者让JavaScript计算出用户系统上的当前时间


据我所知,无法从JavaScript中准确获取时区。您可以从UTC获取当前偏移量,但这与时区本身不同。(偏移量会因DST之类的情况而发生变化;知道当前偏移量并不能告诉您DST何时启动。)

日期时间。现在有服务器的时间,但没有客户端的时间。如果您想检测客户端的时间,您需要使用Javascript,或者通过检测客户端的时间,或者使用时区计算客户端的时间

在本地主机中工作正常,因为服务器和客户端位于同一PC/时区


希望有帮助

也许机器有不同的时间设置?如果开发服务器和实时服务器位于不同的位置,这是完全可能的。正如其他答案所说,DateTime。现在得到的是服务器时间,而不是客户端时间。

通过不同的日期,您的意思是这是一个实际的不同日期,还是只是格式不正确?天哪!!!我的分数比乔恩·斯基特还高!!!这就是天堂的感觉。。。