Задать вопрос
@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
  • Вопрос задан
  • 379 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия «Белый» хакер
    13 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Специалист по кибербезопасности 2.0
    12 месяцев
    Далее
  • Skillbox
    Специалист по кибербезопасности 2.0
    12 месяцев
    Далее
Решения вопроса 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"

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

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

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