Формат DateTime.ParseExact для пользовательской даты

Я не могу использовать функцию parseexact для преобразования следующей строки в дату

Этот работает:

Dim fechaS = "Feb 16 23:13:53.241 2015"
fecha1 = DateTime.ParseExact(fechaS, "MMM dd HH:mm:ss.fff yyyy", Nothing)

Но не получается, когда я добавляю еще пару вариантов:

Dim fechaS = "Mon 16 23:13:53.241 UTC 2015"
fecha1 = DateTime.ParseExact(fechaS, "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing)

1 ответ

Решение

Ваш второй пример имеет три проблемы:

  1. Строка datetime отличается от формата даты
  2. Строка даты не содержит месяца, поэтому ее нельзя проанализировать, не зная об этом.
  3. Не существует действительного спецификатора даты и времени, соответствующего "UTC". Для настройки часовых поясов необходимо указать смещение часового пояса (это то, что z означает) . Вы могли бы это заменить UTC с +0

Это не удается

Dim fechaS = "Mon 16 23:13:53.241 UTC 2015"
fecha1 = DateTime.ParseExact(fechaS, "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing)

Это работает

Dim fechaS = "Mon Feb 16 23:13:53.241 UTC 2015"
fecha1 = DateTime.ParseExact(fechaS.Replace("UTC", "+0"), "ddd MMM dd HH:mm:ss.fff z yyyy", Nothing)

Больше информации здесь о допустимых форматах даты и времени: Пользовательские строки формата даты и времени

Другие вопросы по тегам