簡體   English   中英

將字符串轉換為時間跨度以便對從CSV導入的列求和的問題

[英]Problems with converting a string to timespan in order to sum a column imported from CSV

我想用我的工作時間導入CSV文件。 格式如下:

Description;Start Time;End Time;Duration;Day

導入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。 因此,通過[timespan]簡單地轉換字符串是不夠的。 你必須解析字符串。

你可以嘗試這個,但是我不確定你是否也不需要做其他事情來創建你所追求的數據項目,或者使用Parse()重載來讓你更准確地了解預期的格式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM