自动将UTC日期转换为本地时区

时间:2015-04-22 19:55:35

标签: c# asp.net timezone utc

我们正在开发一个ASP.net应用程序,它以UTC格式存储日期和时间。该应用程序将在全球范围内使用但是每个位置都将运行单独的应用程序实例,并且将拥有自己的数据库。

是否可以自动转换用户查看日期时间值的日期和时间,而无需在C#中获取本地时区(如EST,CST,PST ...)。?

我可以用作

DateTime convertTime = TimeZoneInfo.ConvertTimeFromUtc(
    DateTime.UtcNow, 
    TimeZoneInfo.Local);

但是想知道我是否可以进行一些应用程序范围的设置(在web.config中)或某个地方...这将以本地时区格式显示所有DateTime

1 个答案:

答案 0 :(得分:0)

在ASP.Net应用程序中,TimeZoneInfo.Local指的是服务器的时区 - 而不是用户。一般来说,依靠服务器的时区将其设置为特定的任何东西都是不好的做法。

DateTime.Now属性已涵盖您所询问的行为,该属性使用当地时区,与您在代码中显示的方式非常相似。

不,没有办法使用web.config设置或任何其他设置来全局更改本地时区。这是每台机器的设置,在所有应用程序中都是系统范围的。

您可能考虑的一种方法是将UTC值传递给客户端,并使用客户端JavaScript转换为用户的本地时间。但是,如果您要进行服务器端转换,则必须明确知道用户的时区。