有没有办法在C#(ASP.NET MVC3)中更改请求的时区?

有没有办法在C#(ASP.NET MVC3)中更改请求的时区?,c#,datetime,timezone,localtime,C#,Datetime,Timezone,Localtime,这里是一种更改请求时区设置的方法,例如,在应用程序\u AcquisiteRequestState 然后,对于整个请求,无论何时使用Datetime.ToLocalTime(或new Datetime()等),都会向当前用户/请求显示本地时间版本 (或者每次使用ToLocalTime时我都必须设置时区)在视图中覆盖InitializeCulture(),并将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICult

这里是一种更改请求时区设置的方法,例如,在应用程序\u AcquisiteRequestState

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


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

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

您需要使用线程上下文/存储管理时区信息。从文化到时区没有1:1的映射(这是一种多对多的关系)()。有很多方法可以做到这一点,例如使用自定义上下文成员或(TLS)

您是否有一些示例代码,我已经有了关于区域性的代码,但我认为区域性和时区没有关系。您是对的,DateTime.ToLocal()不使用当前区域性,但是。您无法轻松更改此值。谢谢。我想我只需要在每次输出一个时间时设置时区,这要容易得多:)