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
->获取日期