@kavabangaungava

Почему возникает исключение ParseExact?

Пытаюсь преобразовать строку в объект DateTime.

$dateString = '14-nov-22'
$date = [datetime]::ParseExact($dateString, "dd-MMM-yy", $null)


И получаю исключение

Исключение при вызове "ParseExact" с "3" аргументами: "Строка не распознана как действительное значение DateTime."
строка:1 знак:1
+ $date = [datetime]::ParseExact($dateString, "dd-MMM-yy", $null)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
@BeatHazard
Добрый день.
Все дело в том, что при парсинге месяца в формате MMM он определяется в соответствии с AbbreviatedMonthNames.
Это значение определяется текущим набором региональных параметров вашей ОС, посмотреть его можно следующей командой:
(Get-Culture).DateTimeFormat.AbbreviatedMonthNames
В вашем случае лучше использовать
$dateString = '14-nov-22'
$date = [datetime]::Parse($dateString)

Для автоматического определения месяца и парсинга.
Или
$dateString = '14-nov-22'
$date = $dateString | Get-Date -format "dd-MM-yyyy"

Для задания нужного формата
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы