在日期列表中获取时间差

时间:2019-07-10 16:21:41

标签: powershell-3.0 powershell-4.0

尝试计算两个日期列表之间的差异并输出差异。

日期被视为一个对象,它是我更改的字符串,但是现在我只得到日期。

$TrimmedImport1 = $import1 -replace '"', "" |
                  Set-Content -Path "$env:TEMP\Time Finished.csv"
$TrimmedImport  = $import -replace '"', "" |
                  Set-Content -Path "$env:TEMP\Time Created.csv"

$ContentSetter1 = Get-Content -Path "$env:TEMP\Time Finished.csv"
$ContentSetter  = Get-Content -Path "$env:TEMP\Time Finished.csv"

foreach ($TimeConverted1 in $ContentSetter1) {
    [DateTime]$TimeConverted1
}
"`n"
foreach ($TimeConverted in $ContentSetter) {
    [DateTime]$TimeConverted
}

1 个答案:

答案 0 :(得分:0)

使用Import-Csv来读取原始文件(无需手动“修剪”数据)。要计算相应数据行之间的差异,请使用For循环,因此您可以同时遍历两个数组。

下面的代码示例基于以下假设:您的输入文件由没有标题的单列组成。如果该假设不正确,则需要相应地调整代码。

$created  = Import-Csv "$env:TEMP\Time Created.csv" -Header 'Timestamp' |
            Select-Object -Expand Timestamp
$finished = Import-Csv "$env:TEMP\Time Finished.csv" -Header 'Timestamp' |
            Select-Object -Expand Timestamp

for ($i=0; $i -lt $created.Count; $i++) {
    ([DateTime]$created[$i]) - ([DateTime]$finished[$i])
}