在这里更改时区设置的要求,例如,在Application_AcquireRequestState有没有办法改变C#(ASP.NET MVC3)中的请求的TimeZone?
然后整个请求的方式,无论何时我使用Datetime.ToLocalTime(或新的日期时间()等),局部时间版本将显示给当前用户/请求?
(或我必须设置时区的,每次我用ToLocalTime)
在这里更改时区设置的要求,例如,在Application_AcquireRequestState有没有办法改变C#(ASP.NET MVC3)中的请求的TimeZone?
然后整个请求的方式,无论何时我使用Datetime.ToLocalTime(或新的日期时间()等),局部时间版本将显示给当前用户/请求?
(或我必须设置时区的,每次我用ToLocalTime)
您需要使用线程上下文/存储管理TimeZone信息。没有从文化到TimeZone的1:1映射(这是多对多关系)(Reference Post)。有很多方法可以做到这一点 - 例如使用带有上下文成员的自定义ThreadPrincipal或Thread Local Storage(TLS)
覆盖InitializeCulture()在您的视图,并设置Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture属性您选择的文化。
您是否有一些示例代码,我已经有了关于文化的代码,但我不认为文化和时区是相关的。 –
你说得对,DateTime.ToLocal()不使用当前的文化,而是使用[TimeZoneInfo.Local](http://msdn.microsoft.com/en-us/library/system.timezoneinfo.local.aspx)。您无法轻松更改此值。 – Sjoerd
谢谢。我想我只需要在每次输出时间时设置时区,这更容易:) –