C# 如何基于计算机格式解析日期时间?

C# 如何基于计算机格式解析日期时间?,c#,datetime,globalization,C#,Datetime,Globalization,在我的网站中,我使用DateTime.TryParse()解析DateTime数据。我的问题是我不知道格式。例如,如果用户使用US格式,则格式将为mm/dd/yyyy,而用户使用UK格式,则将使用dd/mm/yyyy格式 我认为格式是基于他们的计算机设置。那么,如何使用他们计算机上的格式解析字符串呢?尝试设置 <system.web> <globalization culture="auto" /> <system.web> 在Web.Confi

在我的网站中,我使用
DateTime.TryParse()
解析DateTime数据。我的问题是我不知道格式。例如,如果用户使用US格式,则格式将为
mm/dd/yyyy
,而用户使用UK格式,则将使用
dd/mm/yyyy
格式

我认为格式是基于他们的计算机设置。那么,如何使用他们计算机上的格式解析字符串呢?

尝试设置

<system.web>
    <globalization culture="auto" />
<system.web>

Web.Config
中,使用
CultureInfo.CurrentCulture
获取当前区域性


此外,您还可以查看
HttpContext.Request.UserLanguages
,以获取有关客户端的其他信息。

虽然Frank59的答案是一个良好的开端,但您不应该完全依赖它。特别声明:

完全依赖浏览器设置来确定页面的UI区域性不是最佳做法。用户经常使用未设置为其首选项的浏览器(例如,在网吧中)。您应该提供一种方法,让用户为页面显式选择语言或语言和区域性(CultureInfo名称)

因此,使用
globalization culture=“auto”
作为设置默认区域性的一种方式,但为用户提供某种下拉列表来覆盖区域性设置。

+1-这是ASP.Net答案(这可能是OP所寻找的-控制台应用程序将自动获取本地区域性)。