字符串日期使用ParseExact转换DateTime

时间:2018-07-11 14:32:33

标签: c# jquery json asp.net-mvc

我有一个字符串,它是一种DD/MM/YYYY样式。(例如:11/07/2018)

我需要将此格式转换为DateTime格式和YYYY-MM-DD样式。

我使用DateTime.Parse尝试过,但不能

if (!String.IsNullOrEmpty(fromDate))
{
   frm = DateTime.ParseExact(fromDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None);
}
else if(!String.IsNullOrEmpty(toDate))
{
   todt = DateTime.ParseExact(toDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None);
}

2 个答案:

答案 0 :(得分:3)

您可以在一行代码中完成此操作。

var newDateString = DateTime.ParseExact(myDateString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None).ToString("yyyy-MM-dd");

请记住,DateTime实例是一种没有格式的数据结构。在处理日期和时间时,最好仅在需要提供/输出供人类阅读的值时才还原为人类可读的字符串。对于包括对支持类型的存储系统的持久性(例如关系数据库)的任何其他处理,请将值保留为DateTime类型。

示例:如果要yyyy-MM-dd是因为要将其持久化到Sql Server,则应在解析后停止(而不是调用ToString)。然后,您可以将DateTime实例直接分配给命令参数的Value属性。

答案 1 :(得分:1)

使用ParseExact进行转换,然后使用ToString转换为目标格式:

    string dateS = "30/04/2018";
    DateTime dateD = DateTime.ParseExact(dateS, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
    string dateS2 = dateD.ToString("yyyy-MM-dd");

以下是一个有效的例子:https://dotnetfiddle.net/e0yuZ6