在System.DateTime对象上操作时间

时间:2018-01-17 13:03:37

标签: powershell

我正在编写的函数中有一个小的(可能)问题。该函数的输入是两个由函数Get-Date获取的System.DateTime类型的(开始和停止)。输出是输入对象之间的System.DateTime对象( start& stop)的数组。即

Start   Stop
2018-01-14 13:54:15 2018-01-14 13:54:15
2018-01-15 13:54:15 2018-01-15 13:54:15

作品。然而,在构建这个数组的过程中,我需要操纵开始和停止对象的时间,并且说实话我没有关于如何在现有对象上设置小时,分钟和秒的最轻微线索。期望的输出就是Ie。

Start   Stop
2018-01-14 08:00    2018-01-14 17:00
2018-01-15 08:00    2018-01-15 17:00

我尝试过使用ParseExact方法,但它也触及了日期。我可能会发送更多的时间,但这似乎是'来自地狱的代码'......

PS C:\tmp> (Get-Date).AddDays(-7)

den 10 januari 2018 14:07:13


PS C:\tmp> [datetime](Get-Date).AddDays(-7)::ParseExact("09:00","hh:mm",$null)

den 17 januari 2018 09:00:00


PS C:\tmp> 

如何在现有的System.DateTime对象上操作时间和时间?

由于功能本身对问题没有任何实际价值,因此它被排除在外。

2 个答案:

答案 0 :(得分:3)

使用时间戳的Date部分,然后添加所需的小时数(上午8点8点,下午5点17点):

PS> (Get-Date).Date.AddHours(8)

den 17 januari 2018 08:00:00

答案 1 :(得分:1)

你的问题不是很清楚你正在寻找什么?

$date1=[datetime]"2018-01-14 13:54:15"
PS>$date1.AddSeconds(-15)

Sunday, January 14, 2018 1:54:00 PM