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

本文关键字:日期 失败 字符串 ParseExact 使用 | 更新日期: 2023-09-27 18:22:06

我不习惯将字符串转换为日期,有人能帮我吗?

String str = "2014-09-10T18:42:17";
DateTime datetime = DateTime.ParseExact(str, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

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

你能试试这个吗

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

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

将指定的日期和时间的字符串表示形式转换为其使用指定格式和特定于区域性的等效DateTime格式信息。字符串表示形式的格式必须匹配指定的格式。

CCD_ 2是这里的关键词。因此,在您的示例中,确切的字符串格式是:

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

您查看过源数据吗?它是用ISO 8601长格式表示的日期/时间

2014-09-10T18:42:17

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

dd/MM/yyyy HH:mm

其中,dd是月中的日期(01-31),MM是月号(01-12),yyyy是4位数的年份,HH是一天中的小时(00-23),而mm是分钟(00-59)。它将匹配看起来像的字符串

10/09/2014 18:42

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

yyyy-MM-ddTHH:mm:ss

您可以尝试阅读文档:

  • 标准日期和时间格式字符串
  • 自定义日期和时间格式字符串