DateTime ParseExact在不同的Visual Studio中提供不同的日期格式结果吗?

时间:2017-02-09 11:05:55

标签: c# visual-studio datetime

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文件中评论了全球化标签。

任何指针为什么会发生这种情况。 ?

3 个答案:

答案 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