我有一个DateTime列表作为字符串:dd.MM.yyyy H:mm:ss(时间是24小时格式,但小时是一位数:6
而不是06
)< / p>
我试图将字符串值精确解析为DateTime对象,如下所示:
DateTime.ParseExact(dt, "dd.MM.yyyy H:mm:ss", CultureInfo.InvariantCulture)
(dt是列表中的字符串值)
问题是我收到一条错误,说该字符串不是有效的DateTime ...
使用当前格式,列表中的第一个和第二个值可以正常工作,当它到达第三个&#39; boooom&#39;我收到了错误。
我的格式错过了哪些内容?
答案 0 :(得分:4)
使用接受有效格式数组的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
应该匹配一位数和两位数小时,所以还有其他事情正在发生。以下代码在我的系统(.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);
答案 1 :(得分:0)
我必须准确地解析使用的小时、分钟和秒,然后使用 ToString
方法转换为月、日和年格式
$myStringDate=[Datetime]::ParseExact($item.myDateObject,'MM/dd/yyyy H:mm:ss',$null).ToString('MM/dd/yyyy')