获取用于DateTime CultureInfo转换的web用户位置

获取用于DateTime CultureInfo转换的web用户位置,datetime,azure,asp.net-mvc-5,utc,cultureinfo,Datetime,Azure,Asp.net Mvc 5,Utc,Cultureinfo,我正在编写一个MVC5互联网应用程序,并将此应用程序部署到Azure。所有日期时间值均以UTC格式存储 如何最好地将这些值显示为web用户的本地时间?我知道如何将UTC日期时间转换为本地时间,但不确定向使用Azure网站的国际用户显示这些日期时间值的最佳方式 我做了一些研究,我读到可以做到以下几点: 获取HttpRequest.UserLanguages字符串数组 检索它的第一个元素。第一个元素表示用户的默认或首选语言和地区 通过调用CultureInfo.CultureInfo(String,

我正在编写一个MVC5互联网应用程序,并将此应用程序部署到Azure。所有日期时间值均以UTC格式存储

如何最好地将这些值显示为web用户的本地时间?我知道如何将UTC日期时间转换为本地时间,但不确定向使用Azure网站的国际用户显示这些日期时间值的最佳方式

我做了一些研究,我读到可以做到以下几点:

  • 获取HttpRequest.UserLanguages字符串数组
  • 检索它的第一个元素。第一个元素表示用户的默认或首选语言和地区
  • 通过调用CultureInfo.CultureInfo(String,Boolean)构造函数实例化表示用户首选区域性的CultureInfo对象
  • 使用CultureInfo对象转换UTC日期时间
  • 有没有更好/更简单的方法?是否必须在每个控制器/操作结果中执行此操作,或者可以在一个位置执行此操作?是否有人编写了一些我可以使用的代码,而不是编写我自己的代码


    提前感谢。

    将此添加到您的web配置中:

    <configuration>
      <system.web>
        <globalization culture="auto:en-US" uiCulture="en-US" />
      </system.web>
    </configuration>
    
    
    
    如果您不打算使用本地化的资源,那么可以省略配置的
    uiCulture
    部分

    此设置会自动将ASP.NET请求切换到浏览器 如果可以找到匹配项,则为客户端的语言。如果浏览器没有 请提供一种语言,否则该语言无法与.NET语言之一匹配 在已安装的区域性中,使用回退值–在本例中为en US

    此设置应用ASP.NET请求线程的当前区域性和 维吾尔文化。在ASP.NET中很早就切换了区域性 HttpApplication生命周期,因此您可以看到所选区域性已应用,并且 甚至在应用程序_BeginRequest和整个 请求周期的其余部分