如何在Powershell中将字符串转换为24小时格式的日期?

3

我有一个包含24小时格式的字符串。

我试图将其转换为24小时格式,但它没有改变。以下是我的代码。

$fromtime = '2018-03-28,23:37:50'
[datetime]$fromtime24hrFormat = ([datetime]$fromtime).ToString("yyyy-MM-dd,HH:mm:ss")
$fromtime24hrFormat

Wednesday, March 28, 2018 11:37:50 PM

在 PM 中显示是正确的。但是不可能以 24 小时制显示吗?


https://dev59.com/0qnka4cB1Zd3GeqPQpq5#49149501 - undefined
嗯?你将一个24小时格式的日期时间读取为datetime,然后将其转换为字符串(使用相同的格式),然后再次将其转换为datetime。为什么这样做?默认情况下,显示datetime对象将使用您的区域设置,即12小时制+上午/下午。如果您想将其显示为24小时制,请使用toString()并指定您想要的格式。 - undefined
2个回答

4
你就快成功了!
$fromtime = '2018-03-28,23:37:50'
[datetime]$fromtime24hrFormat = ([datetime]$fromtime)
$fromtime24hrFormat.ToString("yyyy-MM-dd,HH:mm:ss")

问题在于,你最后一行代码实际上只是将datetime对象输出,这将使用默认格式。

2

你希望在原始输入中添加上午或下午吗?试试这个:

$fromtime = '2018-03-28,23:37:50'
$fromtime24hrFormat = [datetime]$fromtime
$fromtime24hrFormat.ToString("yyyy-MM-dd,HH:mm:ss tt")

2018-03-28,23:37:50 p.m.

"p.m."与PM之间的区别是由于我的挪威地区设置引起的


我已经尝试过这个,但我仍然得到了12小时的返回。$goingto = "C:\2"$latest = (Get-ChildItem $goingto -filter "*.cra" -Attributes !Directory | Sort-Object -Descending -Property LastWriteTime | select -first 1) $FIlecreation = $FIlecreation = $latest.CreationTimewrite-host $FIlecreationWrite-host $FIlecreation.ToString("yyyy-MM-dd HH:mm:ss")[datetime]$fromtime24hrFormat = ([datetime]$FIlecreation) Write-host $fromtime24hrFormat.ToString("yyyy-MM-dd,HH:mm:ss")write-host $FIlecreationWrite-host $FIlecreation.ToString("yyyy-MM-dd HH:mm:ss") - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接