Проблема, сравнивающая созданную дату с текущей датой

Надеюсь, кто-нибудь может мне помочь. У меня возникают проблемы при сравнении текущей даты с датой создания файла. Вывод, который я получаю от каждой даты, ниже вместе с моим кодом.

Создан вывод даты:

21/05/2012 10:27:25

Текущая дата вывода:

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

2 ответа

Решение

Попробуй это:

$x = Get-Date

Вы можете получить список всех методов, связанных с объектом даты, которые делают это:

$x | gm

Вы можете отформатировать свою дату следующим образом:

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

Все параметры формата описаны здесь. Затем вы можете нормализовать свои даты и сравнить их легко.

Распространенным решением является сравнение только с частью даты (не включая части времени). Вы можете сделать это, сравнив свойство Date (которое устанавливает время в полночь):

$date.Date

Или путем явного сравнения с короткой строкой:

$date.ToShortDateString()
Другие вопросы по тегам