[英]Convert String to Date in Powershell
今天我遇到了转换这种类型的字符串“8/3/2020 10:29:33 AM”的问题,我需要将其转换为日期格式。
我尝试这种类型的命令,每次都会出错:
$PwdExpiracy = "8/3/2020 10:29:33 AM"
$date = [datetime]::ParseExact($PwdExpiracy,'MM/dd/yyyy HH:mm:ss tt',$null)
错误是:
Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
Au caractère Ligne:1 : 1
+ $date = [datetime]::ParseExact($PwdExpiracy,'MM/dd/yyyy HH:mm:ss tt',$nu ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException
你能帮我解决这个问题吗? 那你真是太好了!
您正在对带有前导零和 24 小时时间的日期使用格式说明符 - 更改为以下内容:
$date = [datetime]::ParseExact($PwdExpiracy, 'M/d/yyyy hh:mm:ss tt', $null)
M
是没有前导零的月份d
是没有前导零的日子hh
是 12 小时制中的小时 ( AM
/ PM
) 如果您仍然收到"String was not recognized as a valid DateTime."
,尝试强制ParseExact()
使用InvariantCulture
(大致相当于en-US
语言环境),它应该接受它:
$date = [datetime]::ParseExact($PwdExpiracy, 'M/d/yyyy hh:mm:ss tt', [cultureinfo]::InvariantCulture)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.