PowerShell中如何统一转换可变格式时间戳为毫秒?
可变格式时间戳转毫秒的最佳实践
我在脚本中调用外部程序获取时间戳,该程序会输出几种最简格式的时间字符串,示例如下:
"1:33.823" # 1分钟33秒823毫秒 - 最简格式 "11:33.823" # 11分钟33秒823毫秒 - 短格式 "1:11:33.823" # 1小时11分钟33秒823毫秒 - 长格式
我需要把这些值转换为毫秒,尝试过以下方法但遇到问题:
- 直接使用
[timestamp] $mystring转换时,最简格式会报错。 - 用
[timespan]::ParseExact()方法时,必须预先判断外部程序的所有输出格式,手动适配对应的格式字符串(比如最简格式要用m\:ss\.fff,长格式要用h\:mm\:ss\.fff),操作起来很繁琐。 - 还考虑过从后往前拆分字符串,手动构建TimeSpan对象的属性。
想请教:PowerShell有没有针对这类场景的标准(最佳实践)转换方法?还是说这种手动适配格式、拆分字符串的“快速粗糙”方案属于常规做法?
内容的提问来源于stack exchange,提问作者user206904
相关产品推荐
相关产品推荐

