DateTime.ParseExact没有按预期给出确切的结果。
以下是代码行,它在不同的项目中表现不同:
var dateSting = DateTime.Now.AddYears(1).ToString("dd-M-yyyy");
var date = DateTime.ParseExact(dateSting, "dd-M-yyyy", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
此日期对象与使用MVC的UI紧密绑定。所以我不能将日期转换为String并在UI上使用它。 UI仅需要DateTime类型。 在我创建的示例项目中,它以以下格式给出日期结果: dd-M-yyyy 但是在项目中,它给出了以下格式的结果: dd / m / yyyy 。我也在Web.Config文件中评论了全球化标签。
任何指针为什么会发生这种情况。 ?
答案 0 :(得分:0)
尝试使用CultureInfo.InvariantCulture
var dateSting = DateTime.Now.AddYears(1).ToString("dd-M-yyyy");
var date = DateTime.ParseExact(dateSting, "dd-M-yyyy", System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:0)
请尝试CultureInfo.InvariantCulture
,因为en-US
可能会覆盖所需的格式。
答案 2 :(得分:0)
您可以在最后一行尝试使用CultureInfo.InvariantCulture。
var dateSting = DateTime.Now.AddYears(1).ToString("dd-M-yyyy");
var date = DateTime.ParseExact(dateSting, "dd-M-yyyy", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
string result = date.ToString("dd/M/yyyy", CultureInfo.InvariantCulture); //Adding this code