将字符串Date转换为DateTime格式



我已经很好地研究了所有这样的问题,这个和这个。然而,无论我尝试什么,我仍然会得到格式异常:

string DatePaid="9/5/2012";
var date = DateTime.ParseExact(DatePaid, "dd/MM/yyyy", CultureInfo.InvariantCulture);

我不知道我做错了什么?

编辑:

由于您现在将问题的日期字符串更改为"9/5/2012",它可能是Day/Month/YearMonth/Day/Year,假设它是Day/Month/Year,则由于使用dd而出现异常,因为这需要日期部分为两位数。因此,在您的字符串中,日期9应该是09

您可以使用单个dM,它们分别适用于单个和两位数的日期和月份部分。

所以你的代码应该是:

string DatePaid = "9/5/2012";
var date = DateTime.ParseExact(DatePaid, "d/M/yyyy", CultureInfo.InvariantCulture);

旧答案


您收到格式异常,因为您的格式错误。您的格式应该是"M/dd/yyyy",或者如果您有个位数的日期部分,那么使用d,它将解析个位数和两位数的日期。

string DatePaid = "9/15/2012";
var date = DateTime.ParseExact(DatePaid, "M/d/yyyy", CultureInfo.InvariantCulture);

请参阅:自定义日期和时间格式字符串

您的MM(月)将等于15。一年中只有12个月而不是15个月。

这样试试。

      string DatePaid="9/15/2012";
 var date = DateTime.ParseExact(DatePaid, "M/dd/yyyy", CultureInfo.InvariantCulture);

最新更新