DateTime转换失败

时间:2014-03-20 15:17:26

标签: c# asp.net datetime

我的日期字符串就像这样

19-03-2014

我想将其转换为

03/19/2014

尝试过这样的事情

var bday = DateTime.ParseExact("19-03-2014", "dd/mm/yyyy",
         CultureInfo.InvariantCulture)

但这会引发错误

  

字符串未被识别为有效的DateTime。

任何人都可以指出我做错了吗?

5 个答案:

答案 0 :(得分:3)

解析中的多个问题。

  • 您的字符串的分隔符为-,但您使用的格式为/
  • 您使用小写mm一个月,它应该是MM。小写mm是几分钟。

您可以将单dM用于单/双位日/月部分。这将是一种更安全的方法,因为它会将033识别为月份。因此,您的格式应为:"d-M-yyyy"

,您的解析代码可以是:

var bday = DateTime.ParseExact("19-03-2014", 
                               "d-M-yyyy",
                               CultureInfo.InvariantCulture);

您应该看到:Custom Date and Time Format Strings -MSDN

答案 1 :(得分:2)

这只是因为mm是分钟而MM是月

答案 2 :(得分:2)

var bday = DateTime.ParseExact("19-03-2014", "dd-MM-yyyy",
                 CultureInfo.InvariantCulture);

Console.WriteLine(bday.ToString("MM/dd/yyyy"));

答案 3 :(得分:1)

您的格式使用/作为分隔符,但您的日期字符串有-作为分隔符。将其更改为

var bday = DateTime.ParseExact("19-03-2014", "dd-MM-yyyy",
                 CultureInfo.InvariantCulture)

答案 4 :(得分:1)

您应该使用原始格式对其进行解析,然后以所需格式再次打印:

var bday = DateTime.ParseExact("19-03-2014", "dd-MM-yyyy", CultureInfo.InvariantCulture);
string s = bday.ToString("MM/dd/yyyy",System.Globalization.CultureInfo.InvariantCulture);