簡體   English   中英

Powershell-將日期格式修改為CSV列中的值

[英]Powershell - amend date format to values in CSV column

我正在尋找以下PowerShell腳本...

我有一個CSV電子表格,該電子表格可從網站上自動下載,電子表格的第二列是英國格式dd / mm / yyyy的日期值。 我想要一個腳本,它將第2列中所有值的日期格式更改為美國日期格式yyyy / mm / dd。

我正在使用LOAD DATA INFILE將CSV導入MySQL數據庫,目前的日期是2017/02/15,應該是2015/02/17。

CSV文件格式的示例如下...

Col1,Col2,Col3,Col4
Value1,17/02/15,Value3,Value4
Value1,18/02/15,Value3,Value4
Value1,19/02/15,Value3,Value4

我需要它成為...

Col1,Col2,Col3,Col4
Value1,2015-02-17,Value3,Value4
Value1,2015-02-18,Value3,Value4
Value1,2015-02-19,Value3,Value4

一種方法是(將英國格式的所有日期替換為美國格式,而不考慮列):

(get-content c:\file.csv) -replace "(\d{2})\/(\d{2})\/(\d{4})", '$3/$2/$1'  

如果要將結果管道保存到set-content:

(get-content c:\file.csv) -replace "(\d{2})\/(\d{2})\/(\d{4})", '$3/$2/$1'  |sc c:\file.csv 

我喜歡使用TryParseExact 您可以轉換許多格式,並且可以找到無效的值。

例:

$dateString = "17/02/2015"

$format = "dd/MM/yyyy"
[ref]$parsedDate = get-date
$parsed = [DateTime]::TryParseExact($dateString, $format,[System.Globalization.CultureInfo]::InvariantCulture,[System.Globalization.DateTimeStyles]::None,$parseddate)

$parsedDate.Value.ToString("yyyy/MM/dd")

暫無
暫無

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

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