我有一个字符串,我从dd MMM yyyy
格式的文件中提取,我想将其转换为unixtime
进行监控。
举个例子:
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:无法绑定参数'Date'。无法转换价值 “1530662400”键入“System.DateTime”。错误:“字符串不是 被识别为有效的DateTime。“在D:\ cppib \ bin \ snlStatus.ps1:19 焦炭:22 + $ unixtime = Get-Date(New-TimeSpan -Start $ date1 -End $ date2).TotalSeconds + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo:InvalidArgument:(:) [Get-Date],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetDateCommand
答案 0 :(得分:2)
删除列表行中的Get-Date
,因为它试图将Timespan的总秒数转换为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 :(得分:1)
$unixstart = Get-Date -Date "01/01/1970"
$date2 = Get-Date $dateValue
$unixtime = (New-TimeSpan -Start $unixstart -End $date2).TotalSeconds
Write-Host $unixtime