我已经为此苦苦挣扎了一段时间,我已经尽了一切努力,但是还没有成功。我需要将此字符串转换为Powershell日期对象:
20180802 16:30:10
每次我尝试ParseExact时,都说它无法将字符串识别为有效的日期/时间格式。
答案 0 :(得分:4)
以下操作非常有效:
[DateTime]::ParseExact('20180802 16:30:10', 'yyyyMMdd HH:mm:ss', [CultureInfo]::InvariantCulture)
我敢打赌,您的问题是24小时制。
答案 1 :(得分:0)
Pawel Dyl's helpful answer是正确且可靠的解决方案。
仅提供一种快捷方式,在类似的情况下,可能需要使用这种快捷方式,只需{em>简单的文本重新格式化即可使[datetime]
cast 能够识别包含日期/时间表示形式的字符串:
将20180802 16:30:10
转换为2018-08-02 16:30:10
会起作用:
PS> [datetime] ('20180802 16:30:10' -replace '^(\d{4})(\d{2})', '$1-$2-')
Thursday, August 2, 2018 4:30:10 PM # sample output on a US-English system
请注意,PowerShell中的[datetime]
强制使用invariant culture,就像PowerShell在many contexts中一样。