ParseExact 日期时间错误

ParseExact DateTime error

我有一个 DateTime 字符串列表:dd.MM.yyyy H:mm:ss(时间是 24 小时格式,但小时是个位数:6 而不是 06 )

我正在尝试将字符串值准确解析为 DateTime 对象,如下所示:

DateTime.ParseExact(dt, "dd.MM.yyyy H:mm:ss", CultureInfo.InvariantCulture)(dt 是列表中的字符串值)

问题是我收到一条错误消息,指出该字符串不是有效的 DateTime ...

使用当前格式,列表中的第一个和第二个值工作正常,当它到达第三个时 'boooom' 我得到错误。

我的格式是否遗漏了什么?

使用接受有效格式数组的 DateTime.ParseExact 的重载:

string[] formats = { "dd.MM.yyyy H:mm:ss", "dd.MM.yyyy HH:mm:ss" };
var result = DateTime.ParseExact(dt, formats, CultureInfo.InvariantCulture, 0);

更新: 正如其他人指出的那样,H 应该同时匹配 one-digit 和 two-digit 小时,所以其他事情正在发生。以下代码在我的系统 (.NET 4.5.2) 上成功运行:

string dt = "16.12.2016 12:30:00";
var result = DateTime.ParseExact(dt, "dd.MM.yyyy H:mm:ss", CultureInfo.InvariantCulture);

我必须准确解析使用小时、分钟和秒,然后使用 ToString 方法转换为月、日和年格式

  $myStringDate=[Datetime]::ParseExact($item.myDateObject,'MM/dd/yyyy H:mm:ss',$null).ToString('MM/dd/yyyy')