You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中对字符串日期键哈希表按实际日期排序的方法

解决PowerShell哈希表多格式日期键的正确排序方法

核心思路是为每个日期键生成标准化的DateTime对象用于排序,但保留原始字符串键。针对dd/MM/yyyy和MM/yyyy两种格式,处理逻辑如下:

  • 对MM/yyyy格式的键,自动补充当月第一天(01),转换为完整日期后生成DateTime对象;
  • 对dd/MM/yyyy格式的键,直接转换为DateTime对象;
  • 基于转换后的DateTime排序,最终输出仍保留原始字符串键。

实现代码示例

# 示例哈希表
$userCountByDate = @{
    "15/03/2023" = 5
    "02/2023"     = 12
    "01/01/2024"  = 8
    "12/2022"     = 3
    "20/05/2023"  = 7
}

# 按实际日期顺序排序,保留原字符串键
$userCountByDate.GetEnumerator() | Sort-Object {
    if ($_.Key -match "^(\d{2})/(\d{4})$") {
        # MM/yyyy格式,补01转为完整日期
        [DateTime]::ParseExact($_.Key + "/01", "MM/yyyy/dd", $null)
    } else {
        # dd/MM/yyyy格式直接转换
        [DateTime]::ParseExact($_.Key, "dd/MM/yyyy", $null)
    }
}

关键说明

  • 使用ParseExact确保日期转换不受系统区域设置干扰,保证准确性;
  • 正则表达式^(\d{2})/(\d{4})$精准匹配MM/yyyy格式的键;
  • 排序结果会严格遵循时间顺序,比如12/2022 → 02/2023 → 15/03/2023 → 20/05/2023 → 01/01/2024,同时保留原始字符串键。

内容的提问来源于stack exchange,提问作者Di N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 19:28:09