在Powershell中,我有两个包含日期的变量。如何解析日期并计算两个日期之间的时差?
$date1="6/16/2014 3:52:48 PM"
$date2="6/16/2014 4:05:53 PM"
$between=$date2-$date1
$between #Need print: 00:13:05
答案 0 :(得分:4)
.NET的DateTime
类型有一整套解析方法,包括一些允许您指定模式或一些模式,指定所需的格式。稍微猜测你有format:
$culture = Get-Culture
$format = "M'/'d'/'yyyy h':'mm':'ss tt"
$date1 = [DateTime]::ParseExact('6/16/2014 3:52:48 PM', $format, $culture)
$date2 = [DateTime]::ParseExact('6/16/2014 4:05:53 PM', $format, $culture)
如果从另一个中减去一个DateTime
,您将获得TimeSpan
个实例,如果您使用的是PowerShell V3或后者,那么使用.NET 4时,这会有更多格式化选项({{3我和"standard"都可用,我使用下面的自定义)比早期版本:
$between = $date2 - $date1
$between.ToString("hh':'mm':'ss")
$between #Need print: 00:07:05
我想你会发现差异是13分5秒。
答案 1 :(得分:2)
我只想使用提供的字符串获取get-date。这将使用当前的文化,并且更简单。
$date1=get-date "6/16/2014 3:52:48 PM"
$date2=get-date "6/16/2014 4:05:53 PM"
$between=$date2-$date1
$between #Need print: 00:13:05
答案 2 :(得分:1)
$ date1 = [datetime]“2014/6/16 15:52:48”
$ date2 = [datetime]“6/16/2014 16:05:53”
(New-TimeSpan -Start $ date1 -End $ date2).ToString()
输出 00:13:05