有没有办法在C#(ASP.NET MVC3)中为请求更改TimeZone?

时间:2011-12-09 08:33:42

标签: c# datetime timezone localtime

这是一种更改请求的时区设置的方法,例如,在 Application_AcquireRequestState

然后对于整个请求,无论何时使用Datetime.ToLocalTime(或新的Datetime()等),本地时间版本都将显示给当前用户/请求?

(或者我每次使用ToLocalTime时都必须设置时区)

2 个答案:

答案 0 :(得分:0)

您需要使用线程上下文/存储来管理TimeZone信息。从Culture到TimeZone没有1:1的映射(它是很多:许多关系)(Reference Post)。有很多方法可以执行此操作 - 例如将自定义ThreadPrincipal与上下文成员一起使用或Thread Local Storage(TLS)

答案 1 :(得分:-1)

在视图中覆盖InitializeCulture()并将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture属性设置为您选择的文化。