DateTime.尝试解析到其他区域性信息



我目前有一个时间报告项目,您输入日期和该日期的报告时间,(所有日期都显示并以瑞典语格式发送回后端等yy-mm-dd)但是,如果我的计算机上有另一个文化信息,如dd-mm-yyyy,它将解析错误的日期,它将无法工作。

这是我的代码

DateTime reportDate;
if (!DateTime.TryParse(result, out reportDate))
{
    ModelState.AddModelError("Date", "Felaktikt datum");
}

这将取我的yy-mm-dd并将其解析为dd-mm-yyyy,因为这是我的计算机设置的。

您可以这样指定瑞典文化:

DateTime reportDate;
if (!DateTime.TryParse(result,
    System.Globalization.CultureInfo.GetCultureInfo("sv-SE"),
    System.Globalization.DateTimeStyles.None, out reportDate))
{
    ModelState.AddModelError("Date", "Felaktikt datum");
}

DateTime。TryParse有额外的2个参数,第二个是IFormatProvider,你可以指定你想要它代表哪个文化。在你的例子中,它是sv-SE,即瑞典。

DateTime.TryParse(
    result,
    new CultureInfo("sv-SE"),
    DateTimeStyles.None,
    out reportDate
);

你可以尝试第二次重载TryParse方法

DateTime.TryParse(result, CultureInfo.CreateSpecificCulture("sv-SE"), DateTimeStyles.None, out reportDate )

最新更新