将日期和时间字符串转换为日期时间

时间:2019-07-07 17:59:09

标签: powershell

我有一个字符串类型的变量,看起来像这样 $ string =“ 07/07/2019 18:00”。我想将此变量转换为datetime类型的变量。格式应为MM / DD / YYYY HH:MM

$date = '07/07/2019'
$time = '18:00'
$datetime = $date + ' ' + $time
$datetime = [datetime]::ParseExact('$datetime', 'MM/DD/YYYY_HH:MM', $null)

使用上面的代码,我收到一条错误消息:

使用“ 3”个参数调用“ ParseExact”的异常:“未将字符串识别为有效的DateTime。”

还有另一种方法吗?

2 个答案:

答案 0 :(得分:3)

您的格式字符串使用了错误的说明符,即DDYYYY;参见custom date and time formats

将代码更改为

 $date = '07/07/2019'
 $time = '18:00'
 $datetime = $date + ' ' + $time
 $datetime = [datetime]::ParseExact($datetime, 'MM/dd/yyyy HH:mm', $null)

 $datetime

另外请注意,将$datetime作为参考而不是作为单引号引起来的字符串。

您可以在此link下找到上述代码。

答案 1 :(得分:2)

[datetime]'07/07/2019 18:00'


Sunday, July 7, 2019 6:00:00 PM

[datetime]'7/7'
[datetime]'18:00'
[datetime]'6pm'

然后您可以添加或减去它们,但是答案是[时间跨度]。