2013-05-08 114 views
1

希望有人能帮我一把。我无法将当前日期与创建文件的日期进行比较。我从每个日期得到的输出与我的代码一起在下面。比较创建日期和当前日期

创建日期输出:

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' 
} 

回答

3

试试这个:

$x = Get-Date 

你可以得到相关的日期对象的所有方法列表这样做:

$x | gm 

你可以这样格式化你的日期:

$x.ToString("yyyyMMdd hh:mm:ss") 

所有格式选项均描述为here。 然后,您可以标准化日期并轻松进行比较。

+0

感谢您的回答。我可以看到这将如何与标准的PowerShell语句一起工作,但是我忽略了提到从get-snapshot返回的日期与VMware的PowerCLI特别相关,并且将日期转换为字符串不起作用(当然,对于获取日期)。我会将其标记为答案。 – cvandal 2013-05-09 23:49:06

2

一个常见的解决方案是仅与日期部分进行比较(不包括时间部分)。您可以通过比较日期属性(设置时间至午夜)做到这一点:

$date.Date 

或通过显式的比较对短期吃串:

$date.ToShortDateString()