![](/img/trans.png)
[英]How do you code in Powershell to get the latest date from an array?
[英]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.