#vb.net
#vb.net
Вопрос:
Мне нужно автоматически преобразовать дату дд / мм / гг в дд / мм / гггг. Пример: если я вставлю в текстовое поле «12/01/90», программа должна автоматически преобразовать текст в «12/01/1990» или «01/01/20» в «01/01/2020».
Кроме того, я должен проверить дату, чтобы убедиться, что она правильная. Пример: если я введу «80/70/2000», это должно выдать мне ошибку, потому что дата не существует. Как я могу это сделать? Заранее спасибо.
Комментарии:
Ответ №1:
Если у вас есть входные данные в виде строки, вы должны сначала разобрать ее в дату с помощью спецификатора формата, а затем преобразовать ее обратно в строку.
Dim input as String = "22/03/19" ' dd/mm/yy
Dim dt as DateTime = DateTime.MinValue
If (DateTime.TryParseExact(input,
"dd/MM/yy",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
dt
)) Then
Dim output as String = dt.ToString("dd/MM/yyyy")
Console.WriteLine(output)
else
Console.WriteLine("Error")
end if
Вывод:
22/03/2019
Вы можете попробовать это здесь
Комментарии:
1. Для справки, приведение не изменяет тип объекта, так что это не приведение, а скорее преобразование. Приведение было бы, если бы у вас уже было
Date
значение, но оно было присвоеноObject
переменной.2. Исправлено @jmcilhinney