将字符串转换为PowerShell DateTime

时间:2018-02-06 07:08:19

标签: powershell powershell-v5.0

我有以下字符串:"02-06-2018 16:25:28"。我需要将它转换为DateTime对象。我试过这样做:

[DateTime]::ParseExact('02-06-2018 16:25:28', 'dd-MM-yyyy hh:mm:ss', $null)

但它不起作用:

  

字符串未被识别为有效的DateTime。

是否还有[DateTime]::ParseExact以外的其他函数支持解析此fomat dd-MM-yyyy hh:mm:ss中的字符串?

我正在使用PowerShell v5.1。

2 个答案:

答案 0 :(得分:4)

24小时制你需要HHhh是一个12小时的时钟,它不会识别第16个小时。我还建议使用InvariantCulture代替$null,因为后者有时无法使用。

$culture = [Globalization.CultureInfo]::InvariantCulture
[DateTime]::ParseExact('02-06-2018 16:25:28', 'MM-dd-yyyy HH:mm:ss', $culture)

答案 1 :(得分:0)

您也可以将日期/时间字符串传递给Get-Date,它会为您转换它们:例如get-date "02-06-2018 16:25:28"。这将返回一个System.DateTime对象,并且可以通过powershell以通常的方式进行操作。