我正在尝试更改我的asp.net网站的默认时区 我尝试了以下代码,但它无法正常工作
<system.web>
<globalization culture="ar-JO" uiCulture="ar-JO" />
<httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
<compilation debug="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
答案 0 :(得分:19)
更改文化不会更改时区。 .NET中没有办法在每个应用程序的基础上更改时区。它只能在系统范围内进行更改。
许多服务器将其设置为UTC,但最佳做法是完全不依赖于系统时区。切勿在网络应用程序中使用DateTime.Now
,TimeZoneInfo.Local
,DateTimeKind.Local
等。
相反,请使用DateTime.UtcNow
,DateTimeOffset.UtcNow
,或者如果您必须知道服务器的当地时间,请使用DateTimeOffset.Now
。
如果您需要特定用户的当地时间,则需要知道他们的时区,并使用TimeZoneInfo
上的功能在该特定区域和UTC之间进行转换。
了解更多here。
答案 1 :(得分:1)
您需要更改托管数据库的服务器的时区。你不能通过web.config来实现。
以UTC格式存储日期/时间是最佳做法。请参阅下面的这篇文章。
http://www.4guysfromrolla.com/articles/081507-1.aspx
希望这有帮助。