PowerShell脚本中需要的实际行是:
$tsd = [datetime]::ParseExact($TSDiff,'yyyyMMddhhmmsstt',$null)
但正在使用的$TSDiff
变量的时间表示为,没有AM / PM:
20171023212800
这是一个24小时格式,其中晚上11点由23表示。它是使用FTP请求检索的,该请求似乎只返回没有AM / PM的24小时格式字符串。
断开这一点,以下PowerShell命令可以正常工作:
[datetime]::ParseExact("20171023092800",'yyyyMMddhhmmss',$null)
但是以下PowerShell命令不起作用:
[datetime]::ParseExact("20171023212800",'yyyyMMddhhmmss',$null)
第二行不起作用的原因很明显;小时数字采用24小时格式,与本文开头列出的$TSDiff
一样。
PowerShell中有一种简单的方法可以将字符串20171023212800
转换为20171023092800PM
吗?
答案 0 :(得分:3)
[...]
h
,%h
- 12小时制的小时。一位数小时不会有前导零。如果格式模式未与其他格式模式组合,请指定%h
。hh
- 12小时制的小时。单位数小时将有一个前导零。H
,%H
- 24小时制的小时。一位数小时不会有前导零。如果格式模式未与其他格式模式组合,请指定%H
。HH
- 24小时制的小时。单位数小时将有一个前导零。[...]
当您将日期时间字符串转换为格式说明符中带有hh
的12小时格式化字符串时,它将转换为包含HH
的24小时字符串,如:
[datetime]::ParseExact("20171023212800",'yyyyMMddHHmmss',$null)
答案 1 :(得分:1)
使用:
rngCelTohere.Row