Powershell 计算两个时间戳之间的时间差

Powershell 计算两个时间戳之间的时间差,powershell,datetime,Powershell,Datetime,我想计算两个时间戳之间的差值,即使是秒,下面是我的代码片段: #Start Timer $Start_Timer = (Get-Date).DateTime Write-Host "Start Timer is ---> $Start_Timer" #End Timer $End_Timer = (Get-Date).DateTime Write-Host "End Timer is ---> $End_Timer" $Current_Time_End = (Get-Date).Da

我想计算两个时间戳之间的差值,即使是秒,下面是我的代码片段:

#Start Timer
$Start_Timer = (Get-Date).DateTime
Write-Host "Start Timer is ---> $Start_Timer"
#End Timer
$End_Timer = (Get-Date).DateTime
Write-Host "End Timer is ---> $End_Timer"
$Current_Time_End = (Get-Date).DateTime
$TotalExecutionTime = $End_Timer - $Start_Timer
上述代码的输出为:

Start Timer is ---> Monday, August 13, 2018 6:21:18 PM End Timer is ---> Monday, August 13, 2018 6:22:55 PM 启动计时器为--->2018年8月13日星期一下午6:21:18 结束计时器为--->2018年8月13日星期一下午6:22:55 产生的错误

Cannot convert value "Monday, August 13, 2018 6:22:55 PM" to type "System.Int32". Error: "Input string was not in a correct format." At D:\Eclipse_Repository\self_repo\jmallick\FileMover.ps1:55 char:1 + $TotalExecutionTime = $End_Timer - $Start_Timer + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId : InvalidCastFromStringToInteger 无法将值“2018年8月13日星期一下午6:22:55”转换为类型 “System.Int32”。错误:“输入字符串的格式不正确。” 位于D:\Eclipse\u Repository\self\u repo\jmallick\FileMover.ps1:55 char:1 +$TotalExecutionTime=$End\u计时器-$Start\u计时器 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidArgument:(:)[],运行时异常 +FullyQualifiedErrorId:InvalidCastFromStringToInteger 我做错了什么?

使用以下命令:
newtimespan-Start$Start\u Timer-End$TotalExecutionTime
您将以多个增量(天、秒等)表示时差

使用以下命令:
newtimespan-Start$Start\u Timer-End$TotalExecutionTime
您将以多个增量(天、秒等)表示时差

(获取日期)。DateTime
是一个字符串,因此无法进行数学运算。您可以使用
(Get Date).DateTime.gettype().fullname
验证这一点

在纯日期对象上使用减法,例如,
$beforeTime=Get date
,将是您想要执行的操作。这也将返回
TimeSpan
对象

(get-date) - ((get-date).addhours(-1))
也请阅读此内容和

(获取日期)。日期时间是一个字符串,因此您无法进行数学运算。您可以使用
(Get Date).DateTime.gettype().fullname
验证这一点

在纯日期对象上使用减法,例如,
$beforeTime=Get date
,将是您想要执行的操作。这也将返回
TimeSpan
对象

(get-date) - ((get-date).addhours(-1))

也请阅读本文,我建议使用[秒表]进行性能测量。请参见以下示例:

$timer = [System.Diagnostics.Stopwatch]::StartNew()
#do your job
$timer.Stop()

#get timespan
$timer.Elapsed

我建议使用[秒表]进行性能测量。请参见以下示例:

$timer = [System.Diagnostics.Stopwatch]::StartNew()
#do your job
$timer.Stop()

#get timespan
$timer.Elapsed
我用这个

$t1 = (get-date)
$t2 = (get-date)
$tdiff = $t2-$t1
输出变量示例:

$tdiff
$tdiff.minutes
$tdiff.hours
etc

我用这个

$t1 = (get-date)
$t2 = (get-date)
$tdiff = $t2-$t1
输出变量示例:

$tdiff
$tdiff.minutes
$tdiff.hours

etc

$TotalExecutionTime=[datetime]$End\u Timer-[datetime]$Start\u Timer
(获取日期)。datetime
->
获取日期
$TotalExecutionTime=[datetime]$End\u Timer-[datetime]$Start\u Timer
(获取日期)。datetime
->
获取日期