2015-07-15 1 views
1

Im не в состоянии использовать функцию parseexact преобразовать следующую строку Датуформата DateTime.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) 

ответ

2

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

  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) 

Больше информации здесь о времени форматов даты разрешены: Custom DateTime Format Strings