繁体   English   中英

在 Powershell 中将字符串转换为日期

[英]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)

马蒂亚斯 R。 杰森评论中说:

完全相同的"String was not recognized as a valid DateTime." .

你能试一下吗:

 [datetime]::ParseExact($PwdExpiracy,'M/d/yyyy hh:mm:ss tt',[cultureinfo]::InvariantCulture)

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM