gpt4 book ai didi

powershell - PowerShell日期时间转换问题

转载 作者:行者123 更新时间:2023-12-03 01:16:59 25 4
gpt4 key购买 nike

当我运行以下两个PowerShell语句时,我希望它们返回相同的结果,但实际上它们返回的结果是不同的:

New-TimeSpan $(Get-Date) $(Get-Date -month 12 -day 31 -year 2016)
New-TimeSpan $(Get-Date) $(Get-Date "2016-12-31")

结果是:
Days              : 751
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 1
Ticks : 648864000010001
TotalDays : 751.000000011575
TotalHours : 18024.0000002778
TotalMinutes : 1081440.00001667
TotalSeconds : 64886400.0010001
TotalMilliseconds : 64886400001.0001

Days : 750
Hours : 6
Minutes : 50
Seconds : 13
Milliseconds : 67
Ticks : 648246130673175
TotalDays : 750.284873464323
TotalHours : 18006.8369631437
TotalMinutes : 1080410.21778863
TotalSeconds : 64824613.0673175
TotalMilliseconds : 64824613067.3175

这是怎么回事?

最佳答案

我很确定答案是在您使用的不同参数集中。引用the TechNet文章。有两种不同的参数集:netuformat

  • Get-Date "2016-12-31"被检测为net
  • (Get-Date -month 12 -day 31 -year 2016)被检测为uformat

  • 在后者中,由于您未指定时间成分,因此会将它们默认为当前时间。查看 -Hour的文档
    -Hour<Int32>
    Specifies the hour that is displayed. Enter a value from 1 to 23. The default is the current hour.

    当字符串“2016-12-31”强制转换为日期时间午夜时,将在没有值的情况下使用它。在其他情况下,没有指定时间,因此它使用当前时间代替它。
    PS C:\Users\Cameron> (Get-Date -month 12 -day 31 -year 2016)

    Saturday, December 31, 2016 5:14:32 PM


    PS C:\Users\Cameron> $(Get-Date "2016-12-31")

    Saturday, December 31, 2016 12:00:00 AM

    我在条款或原因上可能略有错误,但我必须保持谨慎。例如,即使指定小时,其他时间值仍需要来自某个地方。运行代码的时间是美国东部时间下午5:24。
    PS C:\Users\Cameron> (Get-Date -month 12 -day 31 -year 2016 -Hour 12)

    Saturday, December 31, 2016 12:24:43 PM

    关于powershell - PowerShell日期时间转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27433394/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com