Формат даты выпуска в vb.net - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь проанализировать дату из текстового поля и сохранить ее в переменной даты.

Dim enddt_2 As Date = Date.ParseExact(txtenddt.Text, "dd/MM/yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)  'txtenddt.Text
expenddt_1 = enddt_2.AddDays(-1)
enddt = enddt_2.ToString("dd/MM/yyyy")

enddt - это переменная даты, и когда я конвертирую enddt_2 в строку, я получаю ошибкукак

Conversion from string "17/01/2012" to type 'Date' is not valid.

Позвольте уточнить, если значение в текстовом поле равно 17/01/2012 , чем после анализа значение меняется на 01/17/2012 ( мой системный Регион и Язык имеют дд / мм / гггг ) в enddt_2, и когда я пытаюсь преобразовать в дд / мм / гггг формат и сохранить в переменную даты, я получаювышеуказанная ошибка.Эта ошибка возникает только для дат после 12. Т.е. переменная даты принимает дату в формате MM / dd / yyyy. Даты до 12 работают нормально, т.е. для всех дат от 1 до 12 ошибки нет.

Как я могу сделать enddt сохранить дату в формате дд / мм / гггг.

Ответы [ 2 ]

1 голос
/ 03 января 2012

enddt - это переменная Date, и вы не можете присвоить ей строковое значение и не изменять свои региональные настройки или даже формат даты / времени.

Измените тип enddt, если выхочу сохранить строковую дату.

 Dim enddt as String = enddt_2.ToString("dd/MM/yyyy")
0 голосов
/ 03 января 2012

вы пробовали это?

Dim enddt_2 As Date = DateTime.ParseExact("17/01/2012", "dd/MM/yyyy", _
                      System.Globalization.CultureInfo.InvariantCulture)
Dim newD As Date = enddt_2.AddDays(-1)

Dim xStr As String = "Original Date: " & enddt_2.ToString("dd/MM/yyyy") & vbCrLf
xStr &= "FormatedOriginalDate: " & enddt_2.ToString("MM/dd/yyyy") & vbCrLf
xStr &= "NewDate: " & newD.ToString("MM/dd/yyyy")
Console.Writeline(xStr)

Вывод:

Original Date:         17/01/2012
FormatedOriginalDate:  01/17/2012
NewDate:               01/16/2012
...