1

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

创建日期输出:

21/05/2012 晚上 10:27:25

当前日期输出:

2013 年 8 月 5 日上午 12:00:00

是否可以比较这些日期?

我的代码如下:

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

2 回答 2

3

试试这个:

$x = Get-Date

您可以获得与日期对象关联的所有方法的列表:

$x | gm

您可以像这样格式化您的日期:

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

此处描述了所有格式选项。然后,您可以标准化您的日期并轻松比较它们。

于 2013-05-08T06:58:25.387 回答
2

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

$date.Date

或者通过明确比较短字符串:

$date.ToShortDateString()
于 2013-05-08T07:07:22.007 回答