I s*_*ica 3 string powershell time type-conversion
如何在输出结果的同一命令中将表示小时的字符串转换为H:MM格式?
我有以下代码:
$RunAfterHour = 7
$DelayInMinutes = 10
$RunScriptAfterTime = $RunAfterHour + $DelayInMinutes / 60 # 7:10 AM
"It's after $RunScriptAfterTime"
Run Code Online (Sandbox Code Playgroud)
哪个返回:
It's after 7.166666666666667
Run Code Online (Sandbox Code Playgroud)
但是我想将输出格式化为时间,所以它看起来像这样:
It's after 7:10
Run Code Online (Sandbox Code Playgroud)
我试过了:
"It's after (Get-Date $RunScriptAfterTime -format 't')"
[datetime]::ParseExact($RunScriptAfterTime, 'h.mmmmmmm',$null).ToString('t')
Run Code Online (Sandbox Code Playgroud)
和其他人,但没有运气。
由于您已经有了小时和分钟,因此可以将其格式化:
"It's after {0}:{1:D2}" -f $RunAfterHour, $DelayInMinutes
Run Code Online (Sandbox Code Playgroud)
输出:
It's after 7:10
Run Code Online (Sandbox Code Playgroud)
编辑以反映您的评论:
由于您只有小时($RunScriptAfterTime)的时间,因此可以使用静态 [timespan]::FromHours方法:
$timespan = [timespan]::FromHours($RunScriptAfterTime)
"It's after {0}:{1:D2}" -f $timespan.Hours, $timespan.Minutes
Run Code Online (Sandbox Code Playgroud)
或完全:
[timespan]::FromHours($RunScriptAfterTime).ToString('t')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |