将字符串转换为时间跨度

Bob*_*ler 2 powershell type-conversion

我是 powershell 新手,我一直在尝试将此字符串转换为时间跨度对象:

“2天1小时15分钟”

我尝试了几种使用 parseexact 输入格式的方法,但我似乎无法找到正确的格式。

我尝试过这样的事情:

[TimeSpan]::ParseExact('2 Days 1 Hour 15 Minutes', 'd \Days h \Hour MM \Minutes', $null)
Run Code Online (Sandbox Code Playgroud)

Mat*_*sen 5

TimeSpan 解析器非常敏感,您需要转义不是格式字符串说明符的所有内容:

[TimeSpan]::ParseExact('2 Days 1 Hour 15 Minutes', '%d\ \D\a\y\s\ %h\ \H\o\u\r\ %m\ \M\i\n\u\t\e\s', $null)
Run Code Online (Sandbox Code Playgroud)

(我对说明符使用了百分号表示法(%d而不是d),以使它们在所有 中脱颖而出\,但它们不是必需的)