【问题标题】:Convert a string Date to the DateTime Format?将字符串日期转换为日期时间格式?
【发布时间】:2014-09-08 19:14:50
【问题描述】:
我已经很好地研究了this、this 和this 等所有问题。但是,无论我尝试什么,我仍然会得到 Format 异常:
string DatePaid="9/5/2012";
var date = DateTime.ParseExact(DatePaid, "dd/MM/yyyy", CultureInfo.InvariantCulture);
我不知道我做错了什么?
【问题讨论】:
标签:
c#
string
datetime-format
string-conversion
【解决方案1】:
编辑:
由于您将问题的日期字符串更改为"9/5/2012",现在它可能是Day/Month/Year 或Month/Day/Year,假设它是Day/Month/Year,您会因为使用dd 而遇到异常,因为这需要一天部分为两位数。所以在你的字符串中9 应该是09。
您可以使用单一的d 和M,它们分别适用于一位数和两位数的日期和月份部分。
所以你的代码应该是:
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);
见:Custom Date and Time Format Strings
【解决方案2】:
您的 MM(月)将等于 15。一年中只有 12 个月,而不是 15。
【解决方案3】:
像这样试试。
string DatePaid="9/15/2012";
var date = DateTime.ParseExact(DatePaid, "M/dd/yyyy", CultureInfo.InvariantCulture);