无法将此字符串转换为Powershell中的日期对象

无法将此字符串转换为Powershell中的日期对象,powershell,Powershell,我已经为此奋斗了一段时间,我已经尝试了我能找到的一切,但还没有成功。我需要将此字符串转换为Powershell日期对象: 20180802 16:30:10 每次我尝试ParseExact时,它都会说它无法将字符串识别为有效的日期/时间格式 以下方法非常有效: [DateTime]::ParseExact('20180802 16:30:10', 'yyyyMMdd HH:mm:ss', [CultureInfo]::InvariantCulture) 我敢打赌你的问题是24小时制。以下方法非

我已经为此奋斗了一段时间,我已经尝试了我能找到的一切,但还没有成功。我需要将此字符串转换为Powershell日期对象:

20180802 16:30:10


每次我尝试ParseExact时,它都会说它无法将字符串识别为有效的日期/时间格式

以下方法非常有效:

[DateTime]::ParseExact('20180802 16:30:10', 'yyyyMMdd HH:mm:ss', [CultureInfo]::InvariantCulture)

我敢打赌你的问题是24小时制。

以下方法非常有效:

[DateTime]::ParseExact('20180802 16:30:10', 'yyyyMMdd HH:mm:ss', [CultureInfo]::InvariantCulture)
我打赌你的问题是24小时制。

是正确而可靠的解决方案

为了让[datetime]转换能够识别包含日期/时间表示的字符串,在类似的情况下,只需简单的文本重新格式化,就可以提供一个快捷方式:

将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]强制转换使用,就像PowerShell在中所做的那样。

是正确而健壮的解决方案

为了让[datetime]转换能够识别包含日期/时间表示的字符串,在类似的情况下,只需简单的文本重新格式化,就可以提供一个快捷方式:

将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]强制转换使用,就像PowerShell在中使用一样。

请向我们显示实际代码,包括格式字符串和的完整错误可能重复项。请向我们显示实际代码,包括格式字符串和的完整错误可能重复项