比较创建日期和当前日期
问题描述:
希望有人能帮我一把。我无法将当前日期与创建文件的日期进行比较。我从每个日期得到的输出与我的代码一起在下面。比较创建日期和当前日期
创建日期输出:
21/05/2012下午10时27分25秒
当前日期输出:
2013年8月5日12:00: 00 AM
是否可以比较这些日期?
我的代码如下:
$host = Read-Host 'Host: '
$username = Read-Host 'Username: '
$password = Read-Host 'Password: '
Connect-VIServer -Server $host -User $username -Password $password
$snapshotDate = Get-Snapshot -VM CONVCORPSPOINT | Select-Object Created | Format-Table -HideTableHeaders
$currentDate = Get-Date | Select-Object Date | Format-Table -HideTableHeaders
$snapshotDate
$currentDate
if ($snapshotDate -lt $currentDate) {
Write-Host 'The snapshot date is earlier than the current date'
}
else {
Write-Host 'The snapshot date is not earlier than the current date'
}
答
试试这个:
$x = Get-Date
你可以得到相关的日期对象的所有方法列表这样做:
$x | gm
你可以这样格式化你的日期:
$x.ToString("yyyyMMdd hh:mm:ss")
所有格式选项均描述为here。 然后,您可以标准化日期并轻松进行比较。
答
一个常见的解决方案是仅与日期部分进行比较(不包括时间部分)。您可以通过比较日期属性(设置时间至午夜)做到这一点:
$date.Date
或通过显式的比较对短期吃串:
$date.ToShortDateString()
感谢您的回答。我可以看到这将如何与标准的PowerShell语句一起工作,但是我忽略了提到从get-snapshot返回的日期与VMware的PowerCLI特别相关,并且将日期转换为字符串不起作用(当然,对于获取日期)。我会将其标记为答案。 – cvandal 2013-05-09 23:49:06