我的日期和时间格式如下:
Get-Date -f "M/d/yyyy h:mm tt"
看起来像这样
4/16/2019 4:19 PM
所以现在,我想只选择时间大于上午8:00和下午5:00的那些......但是日期没有任何意义,我想在每个日期选择相同的时间。
我需要做什么才能在时间上使用where对象选择,但在日期时不加区分?
您应该始终根据(字符串)表示区分[datetime]和它的区域设置/用户设置。
您只能使用[datetime]
类型进行计算。要隔离时间组件:
> ([datetime]::now).TimeOfDay
Days : 0
Hours : 19
Minutes : 7
Seconds : 8
Milliseconds : 413
Ticks : 688284139558
TotalDays : 0,796625161525463
TotalHours : 19,1190038766111
TotalMinutes : 1147,14023259667
TotalSeconds : 68828,4139558
TotalMilliseconds : 68828413,9558
或者类似的
> (Get-Date).TimeOfDay
Days : 0
Hours : 19
Minutes : 7
Seconds : 34
Milliseconds : 841
Ticks : 688548416521
TotalDays : 0,796931037640046
TotalHours : 19,1263449033611
TotalMinutes : 1147,58069420167
TotalSeconds : 68854,8416521
TotalMilliseconds : 68854841,6521
一旦格式(qazxsw poi或qazxsw poi)介入,你就会得到一个首先必须转换回Get-Date -f "h:m:s"
的字符串。
根据@PetSerAls的宝贵提示,您可以使用:
.ToString('T')
检查TimeOfDay组件是否在定义的工作时间内。