2016-08-15 5 views
1

Может кто-нибудь подскажет мне, почему я получаю эту ошибку. Я попробовал много перестановок, но я не могу разобрать строку и получить дату из негоФормат Исключение при попытке получить дату в VB.Net

Public Function Starter(starterInput As LoginUserResponse) As List(Of GraphDataObj) Implements iSMS_Rest.Starter 
Dim _currentUser = System.Web.HttpContext.Current.Cache(starterInput.tokenProp) 
Dim res As Date 
Dim provider As Globalization.CultureInfo = Globalization.CultureInfo.InvariantCulture 
Dim dateString As String 
dateString = starterInput.dateProp // VALUE HERE: "2016-08-31T03:59:59.000Z" 
res = Date.ParseExact(dateString, "dd/MM/yyyy", provider) 
'SOME CODE 
End Function 

Exception Я получаю

enter image description here

Я посмотрел на эту ссылку для справки: Convert a string to a datetime

+0

Строка '' 2016-08-31T03: 59: 59.000Z "' не относится к формату '' dd/MM/yyyy''. 'ParseExact' действительно означает * точное *. – David

+0

'ParseExact' означает, что вы обещаете рассказать ему *** точно ***, как выглядит формат. '' dd/MM/yyyy '' совсем не похож на '2016-08-31T03: 59: 59.000Z' – Plutonix

+0

@David: Можете ли вы любезно провести меня тогда, как я могу получить дату в формате dd/MM/yyyy Пожалуйста. – Unbreakable

ответ

1

значение вы используете:

"2016-08-31T03:59:5‌​9.000Z" 

Что не формат:

"dd/MM/yyyy" 

Это звучит как ParseExact не то, что вы ищете. Формат ввода является очень распространенным форматом дата и будет понятно, просто используя Parse:

res = Date.Parse(dateString, provider) 

(Или, если вы не доверяете консистенции формата от стоимости предоставляются, вы можете также use Date.TryParse() instead.)

+0

Большое вам спасибо за ваш ответ. Я доверяю последовательности, потому что знаю, как дата передается от конца, поскольку я только написал этот код, и я знаю, что формат ввода всегда будет таким. В настоящее время из вашего ответа я получаю дату как # 8/30/2016 11:59:59 PM #. Могу ли я каким-то образом получить только нужный формат. У меня есть встроенный метод, который может разобрать его или обрезать только # 8/30/2016 #. – Unbreakable

+0

@Unbreakable: Что вы подразумеваете под «получением даты как # 8/30/2016 11:59:59 PM #"? В вопросе говорится, что ввод этого метода - «2016-08-31T03: 59: 5 9.000Z». Результатом этой операции является объект Date. Объекты 'Date' не имеют форматирования. Вы можете * вывести * 'Date', как вам нравится, но в вопросе вы ничего не выводите. – David

+0

Прошу прощения за то, что не ясна. Я отлаживал проверку даты, которую я получил после того, как я написал код как «res = Date.Parse (dateString, provider)» – Unbreakable

Смежные вопросы