Есть ли способ конвертировать дату формата: dd/mm/yyyy в формат yyyymmdd? Например: с 25.07.2011 по 20110725? в VB.NET?Преобразование mm/dd/yyyy в yyyymmdd (VB.NET)
ответ
Даты сами не имеют форматы по своей сути. Вы можете разобрать строку в DateTime
путем анализа его с форматом dd/MM/yyyy
, а затем преобразовать его в строку, используя yyyyMMdd
формат:
DateTime date = DateTime.ParseExact(text, "dd/MM/yyyy",
CultureInfo.InvariantCulture);
string reformatted = date.ToString("yyyyMMdd", CultureInfo.InvariantCulture);
Или в VB:
Dim date as DateTime = DateTime.ParseExact(text, "dd/MM/yyyy", CultureInfo.InvariantCulture)
Dim reformatted as String = date.ToString("yyyyMMdd", CultureInfo.InvariantCulture)
(И убедитесь, что у вас есть импорт для System.Globalization
.)
Однако в идеале вы должны хранить его как DateTime
(или аналогичный) как можно дольше.
Используйте метод DateTime.ParseExact
, чтобы разобрать дату, затем используйте DateTimeObj.ToString("yyyyMMdd")
.
CDate(Datetext).ToString("yyyyMMdd")
Этот ответ может потерпеть неудачу в зависимости от культуры. Вот почему ответ Джона лучше, чем этот. Например, как решить, будет ли 10/12/2017 10 декабря или 12 октября без ParseExact? – Nizam
Jon, Просто интересно об этом. Почему он не может использовать метод String.Format? – reggie
@reggie: Для второй линии? Он мог бы, но это было бы больше работы ИМО. Зачем задавать спецификатор форматирования составной строки, когда вы хотите только форматировать одно значение? –
Спасибо за подсказку, вторая строка - это то, что я пропустил! –