powershell - 将字符串转换为时间跨度以便对从 CSV 导入的列求和的问题
问题描述
我想用我的工作时间导入一个 CSV 文件。格式如下:
说明;开始时间;结束时间;持续时间;日期
当我导入 CSV 时,每个对象都作为字符串导入。我尝试将 colmn 'Duration' 转换为 [timespan] 以便对这一列求和。这不起作用。
$import = Import-Csv -Path "C:\admin\test3\tst_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]
. 您必须解析字符串。
你可以试试这个,但我不确定你是否还需要做其他事情来创建你所追求的数据项目,或者使用Parse()
允许你更精确地了解预期格式的重载:
$_.Duration = System.TimeSpan::Parse($_.Duration)
推荐阅读
- android - Unity Android Build - 更改场景出错
- python - selenium WebDriverException:在无头 Pi 上发生“连接被拒绝”
- asp.net - ASP.NET 中的字符串比较
- css - 如何在论坛部分本身包含链接
- sql-server - SQL Server - 在包含外部引用的聚合表达式中指定了多个列
- linq - 我想对 LINQ 问题和答案进行分组并让它们正确显示
- javascript - 如何动态增加 SharedArrayBuffer 的大小
- java - Maximo (Maximo Asset Management) 中的 SOAP 和 REST API 有什么区别?
- android - 使用 onBackPressed() 和 onActivityResult() 将数据传回第一个活动
- python - 在不使用循环的情况下处理两个相互依赖的数组,TypeError:只有 size-1 数组可以转换为 Python 标量