DateTime.TryParse到其他文化信息

时间:2015-08-28 09:50:19

标签: c# date

我目前有一个时间报告项目,您可以在该项目中输入该日期的日期和报告时间(所有日期都显示并以瑞典格式发送回后端等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,因为这是我的计算机所设置的内容。

3 个答案:

答案 0 :(得分:8)

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

DateTime reportDate;

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

答案 1 :(得分:3)

DateTime.TryParse有一个额外的2个参数,第二个是IFormatProvider,你可以指定你希望它代表哪种文化。在你的情况下,它是瑞典的sv-SE

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

答案 2 :(得分:1)

您可以尝试使用TryParse方法的第二个重载

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