2015-12-10 2 views
0

У меня есть дата, как строка в формате 16 окт 2015 12: 05: 29: 000 и я его в DateString переменной.проблема со строкой для преобразования даты и времени в vb.net

Я использую следующую строку кода для преобразования ее в формат даты.

Dim FormattedDate As Date = Date.ParseExact(DateString, "dd mmm yyyy HH:mm:ss.FFF", System.Globalization.CultureInfo.InvariantCulture) 

Я получаю следующее сообщение об ошибке. Строка не была признана действительной DateTime

что я делаю неправильно?

ответ

1

Ваш код почти правильный и просто нужно исправить две вещи в существующей строке формата, т. Е. dd mmm yyyy HH:mm:ss.FFF

1.) dd mmm yyyy HH:mm:ss.FFF - здесь формат имени месяца должен быть MMM, потому что вы хотите получить Oct (16 Oct 2015 12:05:29:000)

2.) 12:05:29:000 время в строке, но вы пытаетесь разобрать его, как HH:mm:ss.FFF < - (примечание: :000 к .FFF будет дает ошибку

и окончательный код должен быть

Вы имеете использовать dd MMM yyyy HH:mm:ss:FFF вместо dd mmm yyyy HH:mm:ss.FFF

Dim FormattedDate As Date = Date.ParseExact(dateString, _ 
                "dd MMM yyyy HH:mm:ss:FFF", _ 
                System.Globalization.CultureInfo.InvariantCulture) 

DEMO

1

попробовать с этим

Dim datestring = "16 Oct 2015 12:05:29.000" 
Dim FormattedDate As Date = Format(CDate(datestring), "dd MMM yyyy HH:mm:ss.FFF") 

или же, как вы пытаетесь

Dim datestring = "16 Oct 2015 12:05:29.000" 
Dim FormattedDate As Date = Date.ParseExact(datestring, "dd MMM yyyy HH:mm:ss.FFF", System.Globalization.CultureInfo.InvariantCulture) 

вы использовали mmm вместо MMM для ТРЕХБУКВЕННЫЕ month.please внимательно посмотреть на дату строка и формат u указан. Существует разница, которая вызвала неполадку строки.

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