使用ParseExact的字符串到日期失败

时间:2014-09-15 17:18:53

标签: c# .net

我没有习惯将字符串转换为日期,有人可以帮助我吗?

String str = "2014-09-10T18:42:17";

DateTime datetime = DateTime.ParseExact(str, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

2 个答案:

答案 0 :(得分:3)

你能试试吗

DateTime datetime = DateTime.ParseExact(str, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);

字符串格式必须与日期格式完全匹配。 来自MSDN,ParseExact()

  

将指定的日期和时间字符串表示形式转换为它   DateTime等效使用指定的格式和特定​​于文化   格式信息。字符串表示的格式必须匹配   准确的指定格式。

Exactly是关键词。因此,在您的示例中,确切的字符串格式为:

2014-09-10T18:42:17
yyyy-MM-ddTHH:mm:ss

答案 1 :(得分:2)

你看过你的源数据了吗?它是以ISO 8601长格式表示的日期/时间

2014-09-10T18:42:17

另一方面,您的格式说明符正在寻找

形式的字符串
dd/MM/yyyy HH:mm

其中dd是月中的某一天(01-31),MM是月份数(01-12),yyyy是4位数年份,{{ 1}}是一天中的小时(00-23),HH是分钟(00-59)。它将匹配看起来像

的字符串
mm

如果要匹配源数据,则需要使用以下格式字符串:

10/09/2014 18:42

您可以尝试阅读文档: