在Powershell中隔离时间和日期

问题描述 投票:-1回答:1

我的日期和时间格式如下:

Get-Date -f "M/d/yyyy h:mm tt"

看起来像这样

4/16/2019 4:19 PM

所以现在,我想只选择时间大于上午8:00和下午5:00的那些......但是日期没有任何意义,我想在每个日期选择相同的时间。

我需要做什么才能在时间上使用where对象选择,但在日期时不加区分?

powershell
1个回答
0
投票

您应该始终根据(字符串)表示区分[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组件是否在定义的工作时间内。

© www.soinside.com 2019 - 2024. All rights reserved.