2013-05-08 2 views
1

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

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

21/05/2012 10:27:25 PM

токовый выход дата:

8/05/2013 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, но я не обращал внимания на то, что дата, возвращаемая из моментального снимка, связана конкретно с PowerCLI от VMware, а преобразование даты в строку не работает (отлично работает для получения даты). Я отмечу это как ответ. – cvandal

2

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

$date.Date 

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

$date.ToShortDateString() 
Смежные вопросы