PowerShell日期时间转换问题
当我运行以下两个PowerShell语句时,我希望它们返回相同的结果,但实际上它们返回不同的结果:PowerShell日期时间转换问题,powershell,Powershell,当我运行以下两个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
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
发生了什么事?我很确定答案在您使用的不同参数集中。关于第条。有两种不同的参数集:
net
和uformat
被检测为获取日期“2016-12-31”
net
被检测为(获取日期-2016年12月31日)
uformat
-Hour
-Hour<Int32>
Specifies the hour that is displayed. Enter a value from 1 to 23. The default is the current hour.
我可能在条款或原因上有点错误,但我必须接近。即使在指定小时(例如)时,其他时间值仍然需要来自某个地方。代码运行的时间是美国东部时间下午5:24
PS C:\Users\Cameron> (Get-Date -month 12 -day 31 -year 2016 -Hour 12)
Saturday, December 31, 2016 12:24:43 PM
似乎
(获取日期-2016年12月31日)
也占用了当前时间。而另一个设置为午夜。必须与使用2个不同的参数集有关。您是否尝试过将其分解为多个部分?e、 g.调用Get Date
并存储该值,并在构建新的TimeSpan
时使用该值?除了@Matt指出的问题之外。。。通过两次调用Get Date
(不带参数),您使用的值(稍微)不同,至少在理论上是这样。@David Yes Get Date每次调用时都返回当前日期和时间,但差异的大小是毫秒,而不是17小时以上。
PS C:\Users\Cameron> (Get-Date -month 12 -day 31 -year 2016 -Hour 12)
Saturday, December 31, 2016 12:24:43 PM