如何将表示小时数的字符串转换为输出结果的同一命令中的H:MM
格式?
我有这段代码:
$RunAfterHour = 7
$DelayInMinutes = 10
$RunScriptAfterTime = $RunAfterHour + $DelayInMinutes / 60 # 7:10 AM
"It's after $RunScriptAfterTime"
返回:
It's after 7.166666666666667
但是我想将输出格式化为时间,所以看起来像这样:
It's after 7:10
我试过了:
"It's after (Get-Date $RunScriptAfterTime -format 't')"
[datetime]::ParseExact($RunScriptAfterTime, 'h.mmmmmmm',$null).ToString('t')
其他人但没有运气。
答案 0 :(得分:4)
由于你已经有了小时和分钟,你可以将其格式化:
"It's after {0}:{1:D2}" -f $RunAfterHour, $DelayInMinutes
<强>输出:强>
It's after 7:10
编辑反映您的评论:
由于您只有几小时的时间($RunScriptAfterTime
),因此您可以使用静态 [timespan]::FromHours
方法:
$timespan = [timespan]::FromHours($RunScriptAfterTime)
"It's after {0}:{1:D2}" -f $timespan.Hours, $timespan.Minutes
或者完全:
[timespan]::FromHours($RunScriptAfterTime).ToString('t')