将字符串转换为时间跨度以便对从 CSV 导入的列求和时出现问题



我想导入一个包含我工作时间的 CSV 文件。格式如下:

描述;开始时间;结束时间;持续时间;天

当我导入 CSV 时,每个对象都作为字符串导入。我尝试将 colmn"持续时间"转换为 [时间跨度] 以对本列求和。这行不通。

$import = Import-Csv -Path "C:admintest3tst_tasks_Mai-2019.csv" -Delimiter ";" |
          Sort-Object -Top 15
$sort_description = $import | Sort-Object {$_.Description}
$set_dateformat = $sort_description | ForEach-Object {
    $_.Duration = [timespan]$_.Duration
}

错误信息:

无法将类型"System.Object[]"的"System.Object[]"值转换为类型"System.TimeSpan">

时间和日期根据文化有许多不同的格式,有许多可能的地方模棱两可......一个字符串并不总是(甚至经常(映射到一个 TimeSpan。 因此,仅仅通过 [timespan] 强制转换字符串是不够的。必须分析字符串。

您可以尝试此操作,但我不确定您是否还需要执行其他操作来创建所需的数据项目,或者使用Parse()重载来使您更精确地了解预期的格式:

 $_.Duration = System.TimeSpan::Parse($_.Duration)

相关内容

  • 没有找到相关文章

最新更新