Как проанализировать дату и время с помощью :: parseexact в PowerShell? - PullRequest
0 голосов
/ 07 мая 2018

У меня возникла проблема при попытке анализа и преобразования строки в формат [DateTime] в PowerShell с использованием ::parseexact. Может кто-нибудь сказать мне, где мой плохой? Вот мой код.

[datetime]::parseexact('2018-05-07T15:19:17.839+03:00','o', 'yyyy-MM-ddTHH:mm:ss.fffzzz')

А вот и ошибка

Не удалось найти перегрузку для "parseexact" и счетчика аргументов: "3". В строке: 1 символ: 1 + [datetime] :: parseexact ('2018-05-07T15: 19: 17.839 + 03: 00', 'o', 'гггг-ММ- ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodException + FullyQualifiedErrorId: MethodCountCouldNotFindBest

1 Ответ

0 голосов
/ 07 мая 2018

Как уже упоминалось в комментарии, вы можете изменить свой код на [datetime]::parseexact('2018-05-07T15:19:17.839+03:00', 'yyyy-MM-ddTHH:mm:ss.fffzzz',$null), и это будет работать для вас, если вы не заинтересованы в CultureInfo.

Но, как я вижу из вашего кода, вы предоставляете 3 аргумента для своей функции ParseExact, что заставляет меня задуматься, действительно ли вы пытаетесь изменить CultureInfo. Если вы хотите изменить это, вы можете сделать что-то вроде этого -

([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('en-GB'))

OR

([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('de-DE'))

и т. Д. В зависимости от ваших требований.

Дополнительная информация -

Согласно статье MSDN ,

The DateTime.ParseExact (String, String [], IFormatProvider, DateTimeStyles) Метод анализирует строковое представление даты, которая соответствует любой шаблонов, назначенных параметру форматов. Если строка не соответствует ни одному из этих шаблонов ни одному из вариантов определенный параметром styles, метод генерирует исключение FormatException. Помимо сравнения с несколькими шаблонами форматирования, а не один шаблон форматирования, эта перегрузка ведет себя идентично DateTime.ParseExact (String, String, IFormatProvider, DateTimeStyles) способ.

Параметр style представляет собой побитовую комбинацию значений перечисления, которая указывает допустимый формат s (входная дата). Типичное значение, которое нужно указать: Нет .

Подробнее см. Культура форматирования Get-Date .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...