Как проанализировать дату как iso в VB.NET

#asp.net #vb.net #date #parsing #datetime

#asp.net #vb.net #Дата #синтаксический анализ #дата и время

Вопрос:

Я пытаюсь проанализировать дату в vb.net как показано ниже.

 Dim EndDate As Date = Date.Now.ToString("yyyy-MM-dd")
If Date.TryParseExact(txtEndDate.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, EndDate) Then
  EndDate = txtEndDate.Text
Else
  txtEndDate.Text = EndDate
End If
 

Я не могу понять, почему мой приведенный выше код выводит 00:00:00

ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ

Если введенная дата не является допустимой ISO датой "yyyy-MM-dd" , то

Установите txtEndDate.Text и EndDate на сегодняшний день как ** ISO .


ПРИМЕР

если я передам в 2016-15-10

EndDate устанавливается в #10/15/2016 12:00:00 AM#

если я передам в asfd

EndDate устанавливается в #1/1/0001 12:00:00 AM#

Комментарии:

1. Последним аргументом должна быть дата, чтобы сохранить результат, вы передаете строку. Function TryParseExact(s As String, format As String, provider As System.IFormatProvider, style As System.Globalization.DateTimeStyles, ByRef result As Date) As Boolean

2. Даже когда я устанавливаю переменную в качестве даты, результат равен 1/1/0001 12:00:00 утра

3. какое значение вы анализируете?

4. Смотрите пример выше

5. Вы проверяете (анализируете) строку. Как правило, если это не удается, вам нужны новые входные данные (понятия не имею, откуда они берутся, пользователь?). Обратите внимание, что совершенно хорошая дата, подобная 2016-10-5 этой, также не будет работать с этой строкой формата, потому что день не dd является или ’05`. «гггг-М-д» будет анализировать 1 или 2 цифры формы

Ответ №1:

Не могли бы вы просто сделать это:

 Dim EndDate As String = Date.Now.ToString("yyyy-M-d")
If Not Date.TryParseExact(txtEndDate.Text, "yyyy-M-d", CultureInfo.InvariantCulture, DateTimeStyles.None, EndDate) Then
  txtEndDate.Text = Date.Now.ToString("yyyy-M-d")
End If
 

Если он будет успешным, то EndDate будет возвращен, как и ожидалось, однако, если нет, то просто установите значение сегодня, как указано выше.

Комментарии:

1. Ну, если ты хочешь быть в этом полностью логичным. Иногда очевидное ослепляет. 🙂