Powershell 如何将datetime数组转换为仅获取时间(HH:mm)
需要您帮助了解如何转换datetime数组结果以仅获取时间Powershell 如何将datetime数组转换为仅获取时间(HH:mm),powershell,Powershell,需要您帮助了解如何转换datetime数组结果以仅获取时间HH:mm。以下是示例结果集: $tableRt RecordedTime ------------ 2/18/2018 1:18:04 PM 2/18/2018 1:23:02 PM 2/18/2018 1:28:04 PM 2/18/2018 1:33:02 PM 2/18/2018 1:38:05 PM 2/18/2018 1:43:02 PM 只需将管道对象强制转换为[d
HH:mm
。以下是示例结果集:
$tableRt
RecordedTime
------------
2/18/2018 1:18:04 PM
2/18/2018 1:23:02 PM
2/18/2018 1:28:04 PM
2/18/2018 1:33:02 PM
2/18/2018 1:38:05 PM
2/18/2018 1:43:02 PM
只需将管道对象强制转换为
[datetime]
并格式化即可。例如:
$tableRt = @(
'2/18/2018 1:18:04 PM'
'2/18/2018 1:23:02 PM'
'2/18/2018 1:28:04 PM'
'2/18/2018 1:33:02 PM'
'2/18/2018 1:38:05 PM'
'2/18/2018 1:43:02 PM'
)
$tableRt | ForEach-Object {
([datetime]$_).ToString("HH:mm")
}
输出:
13:18
13:23
13:28
13:33
13:38
13:43
感谢大家的建议,我能够解析代码并获得所需的输出
$FinalTable = @()
$FinalTableVar = New-Object System.Object
foreach ($data in $Table)
{
#$data
$RecordedTime = Get-Date -Date $data.RecordedTime -Format HH:mm
$FinalTableVar = [PSCustomObject]@{
RecordedTime = $RecordedTime
Connections = $data.Connections
}
$FinalTable += $FinalTableVar
}
$RT = $FinalTable | select-object "RecordedTime"
样本输出:
> $RT
RecordedTime
------------
15:28
15:33
15:38
感谢您的快速响应,但我在尝试转换datatable结果时遇到了错误。以下是我使用的示例代码:$TableRT=$Table | select object“RecordedTime”$RecordedTime=@(Foreach($TableRT中的行){$Row[0]})$RecordedTime | Foreach object{([datetime]$)。ToString(“HH:mm”)}以下是错误消息:无法将值“{RecordedTime=2/19/2018 2:30:01 PM}”转换为“System.datetime”。错误:“无法将类型为“Selected.System.Data.DataRow”的“@{RecordedTime=2/19/2018 2:30:01 PM}”值转换为类型“System.DateTime”。“第3行字符:5+([DateTime]$\)。ToString(“HH:mm”)请开始一个新问题,阅读注释中的代码并不有趣,我需要一些可复制的东西。@PSNewbie您可能需要使用
$tableRt.RecordedTime | foreach…