簡體   English   中英

PowerShell 獲取最新的字符串日期

[英]PowerShell get latest string date

我有一個里面有日期的列表

$date = @('05-28-2020','09-30-2021')

我想找到最近的日期

我嘗試在比較之前轉換字符串:

[datetime]::ParseExact($date[0],'MM_dd_yyyy', $null)

但不工作

有任何想法嗎?

  • 您可以直接將您的日期時間字符串轉換為[datetime] - 無需ParseExact()調用 - 假設您的輸入格式被 PowerShell始終在轉換中使用的不變文化所識別。

  • System.Linq.Enumerable.Max<T>()允許您在[datetime]類型的枚舉中找到最大值。

所以:

$date = @('05-28-2020','09-30-2021') # Note: The @(...) enclosure isn't strictly needed.

[Linq.Enumerable]::Max([datetime[]] $date)

在美式英語系統上,上述結果是Thursday, September 30, 2021 12:00:00 AM ,即輸入中最近日期的默認 output 格式[datetime] '09-30-2021'


至於你嘗試了什么:

  • 如前所述, ParseExact()調用的唯一直接問題是您使用_而不是-

  • 另請注意,將$null作為第三個參數傳遞意味着在解析期間使用當前有效的文化(如[cultureinfo]::CurrentCulture中所反映的那樣;這對於數字格式序列(例如MM )無關緊要,但對於符號諸如MMM之類的 - 甚至可能使用未引用的占位符:/

將您的_切換為-它將起作用: 在此處輸入圖像描述

$date = @('05-28-2020','09-30-2021')
$max = '01-01-1999'
$date | ForEach-Object {
    if($_ -ge $max){
        $max = $_
    }
}

這應該做的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM