2016-11-24 68 views
1

我有一個字符串,我從dd MMM yyyy格式的文件中提取,我想將其轉換爲unixtime進行監視。將dd MMM yyyy轉換爲unix時間

舉個例子:

19 Jul 2017 

我想顯示爲:

1500422400 

每一番搜索我想以下幾點:

$dateValue = "19 Jul 2017" 
$date1 = Get-Date -Date "01/01/1970" 
$date2 = Get-Date -Date $dateValue 
$unixtime = Get-Date (New-TimeSpan -Start $date1 -End $date2).TotalSeconds 

我得到以下錯誤:

Get-Date : Cannot bind parameter 'Date'. Cannot convert value "1530662400" to type "System.DateTime". Error: "String was not recognized as a valid DateTime." At D:\cppib\bin\snlStatus.ps1:19 char:22 + $unixtime = Get-Date (New-TimeSpan -Start $date1 -End $date2).TotalSeconds + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-Date], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetDateCommand

+2

刪除列表行中的獲取日期 – Nkosi

回答

2

在列表行中刪除Get-Date因爲它試圖將時間跨度的總秒數轉換爲DateTime

$dateValue = "19 Jul 2017" 
$unixtime = ((Get-Date $dateValue)-(Get-Date "01 JAN 1970")).TotalSeconds 
Write-Host $unixtime 

進一步檢查,發現這個

$dateValue = "19 Jul 2017" 
$unixtime = Get-Date $dateValue -UFormat %s 
Write-Host $unixtime 

這回同樣的事情。

來源:Get-Date

1
$unixstart = Get-Date -Date "01/01/1970" 
$date2 = Get-Date $dateValue 

$unixtime = (New-TimeSpan -Start $unixstart -End $date2).TotalSeconds 

Write-Host $unixtime 
相關問題