[英]Convert date format in CSV using PowerShell
我有兩個CSV文件,其中包含50列和超過10K的行。 有一個具有日期時間值的列。 在某些記錄中是01/18/2013 18:16:32,在某些記錄中是16/01/2014 17:32。
我想要像這樣轉換列數據: 01/18/2013 18:16
。 我想刪除秒值。 我想通過PowerShell腳本來做到這一點。
樣本數據:
10/1/2014 13:18
10/1/2014 13:21
15/01/2014 12:03:19
15/01/2014 17:39:27
15/01/2014 18:29:44
17/01/2014 13:33:59
由於無論如何都不會轉換為合理的日期格式,因此您可以對該列進行正則表達式替換:
Import-Csv foo.csv |
ForEach-Object {
$_.Date = $_.Date -replace '(\d+:\d+):\d+', '$1'
} |
Export-Csv -NoTypeInformation foo-new.csv
您也可以使用日期解析的方法,但這可能會慢一些:
Import-Csv foo.csv |
ForEach-Object {
$_.Date = [datetime]::Parse($_.Date).ToString('MM/dd/yyyy HH:mm')
} |
Export-Csv -NoTypeInformation foo-new.csv
如果您確定沒有其他時間戳記或其他地方可能沒有的時間戳記,則也可以只替換看起來像它的所有內容而無需解析為CSV:
$csv = Get-Content foo.csv -ReadCount 0
$csv = $csv -replace '(\d{2}/\d{2}/\d{4} \d{2}:\d{2}):\d{2}', '$1'
$csv | Out-File foo-new.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.