如何用PowerShell将$Time变量的Datetime转换为yyyy-mm-dd hh:mm:ss格式
解决方案
没问题,这可以通过PowerShell的日期时间解析和格式化能力快速实现。以下是针对你需求的完整代码:
# 示例$Time变量(替换成你实际的变量即可) $Time = @( "Monday, November 30, 2020 8:55:01 AM", "Sunday, October 18, 2020 11:10:01 PM" ) # 转换并生成格式化后的日期时间列表 $formattedDateTimeList = $Time | ForEach-Object { # 将英文格式的日期字符串解析为DateTime对象 $dateObj = [DateTime]::Parse($_) # 格式化为"yyyy-MM-dd HH:mm:ss"标准格式 $dateObj.ToString("yyyy-MM-dd HH:mm:ss") } # 输出结果 $formattedDateTimeList
关键说明:
- 解析字符串:
[DateTime]::Parse()能自动识别你提供的英文日期时间格式(比如带星期、月份全称的格式),将字符串转换为可操作的DateTime对象。 - 格式控制:
ToString("yyyy-MM-dd HH:mm:ss")中的格式符要注意:yyyy:4位年份,MM:2位月份(大写避免和分钟mm混淆),dd:2位日期HH:24小时制的小时(比如原字符串的11 PM会转换为23),如果需要12小时制可以换成小写hh
- 容错处理(可选):如果你的$Time变量中可能存在无效的日期字符串,可以添加错误处理避免脚本中断:
$formattedDateTimeList = $Time | ForEach-Object { $parsedDate = $null if ([DateTime]::TryParse($_, [ref]$parsedDate)) { $parsedDate.ToString("yyyy-MM-dd HH:mm:ss") } else { Write-Warning "无法解析日期时间: $_" # 可选择保留原字符串或跳过,这里选择保留 $_ } }
运行上述代码后,$formattedDateTimeList就会存储所有转换后的标准格式日期时间,直接输出就能得到你需要的列表。
内容的提问来源于stack exchange,提问作者Jagbir Singh
相关产品推荐
相关产品推荐

