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