Нам нужно преобразовать системную дату в соответствующий формат в соответствии с конкретной культурой. Мы наблюдаем странное поведение, в котором мы не можем преобразовать DateTime только в марте для культуры Италии.Vb.Net не в состоянии конвертировать DateTime только за один месяц в марте для Италии Культура
Try
Dim dt As String = "01-Mar-2016"
Dim culture As New CultureInfo("it-IT")
MsgBox(Convert.ToDateTime(dt, culture).ToShortDateString)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Приведенный выше код работает за январь, февраль, май, май, июнь, июль, август, сентябрь, октябрь, ноябрь & Дек, но не только март Это любой существующий ошибка в Windows, ..?
PS: Вышеприведенный код генерирует исключение «String не был признан действительным DateTime», но отлично работает, когда мы меняем дату как «01 марта 2016 года».
Он отлично работает при разборе: 'DateTime.ParseExact (DT, "дд-MMM-YYYY", культура) .ToShortDateString()' – Plutonix
Привет @Plutonix, Спасибо за информацию. Я проверю его. Но есть ли какая-то причина, почему вышеупомянутая логика должна потерпеть неудачу только для Мар для Италии ..? – user3138788
Строго говоря, это не соответствует действительности для Италии. У них есть 'd-MMM-yy' и' d MMMM yyyy', но это не совсем то же самое, поэтому синтаксический анализ более подходит, чем конвертирование. [NetFiddle действительных форматов] (https://dotnetfiddle.net/WImdZ7) – Plutonix