簡體   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