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

如何用PowerShell将"PT5H"转换为ticks?转换报错求助

解决"PT5H"转TimeSpan并获取Ticks的问题

PowerShell默认的[TimeSpan]::Parse()不支持ISO 8601标准的持续时间格式(如"PT5H"),所以会抛出转换错误。可以用以下两种方法解决:

方法一:使用XmlConvert解析通用ISO 8601格式

这种方法能兼容多种ISO 8601时间间隔格式(比如PT1H30M、P2DT4H等):

# 解析ISO 8601时间字符串为TimeSpan对象
$timeSpan = [System.Xml.XmlConvert]::ToTimeSpan("PT5H")
# 获取对应的Ticks值
$ticks = $timeSpan.Ticks
# 输出结果
$ticks

方法二:使用TimeSpan.ParseExact匹配固定格式

如果你的时间字符串格式固定为"PTnH"这种形式,可以指定精确格式解析:

# 定义匹配"PTnH"格式的模板
$format = "PT\HH"
# 解析字符串为TimeSpan对象
$timeSpan = [TimeSpan]::ParseExact("PT5H", $format, $null)
# 获取对应的Ticks值
$ticks = $timeSpan.Ticks
# 输出结果
$ticks

运行任意一种方法后,都会得到"PT5H"对应的Ticks值:180000000000(5小时 × 3600秒/小时 × 10000000Ticks/秒)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10