簡體   English   中英

使用PowerShell將日期格式轉換為CSV

[英]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.

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