VB.net: дата без времени

Как вы форматируете дату, чтобы просто дата?

Например, это то, что я получил из базы данных: 31.12.2008, 12:00:00, но я просто хочу показать дату, а не время.

10.12.2008 17:54:09
5 ОТВЕТОВ
РЕШЕНИЕ

Либо используйте одну из стандартных строк формата даты и времени, в которой указывается только дата (например, «D» или «d»), или настраиваемую строку формата даты и времени, в которой используются только части даты (например, «гггг / мм / дд»). ).

35
10.12.2008 17:56:22
например: DateTime.Now.ToString ("d")
schmoopy 17.12.2008 19:17:19
Это работает, если вы хотите получить строковый результат. Если вы хотите, чтобы результат даты, см. Ответ madcolor ниже. Я имею в виду, я думаю, вы могли бы просто привести строку обратно к дате, но это дополнительный шаг.
Aaron 14.05.2014 14:51:37
@ Аарон: Как вы думаете FormatDateTime(в ответе Madcolor) возвращается? ОП хочет строку - это то, что означает «формат», и это и мой результат, и результат FormatDateTime. Разница в том, что использование ToStringболее .NET-идиоматического подхода, который не требует Microsoft.VisualBasic.dll.
Jon Skeet 14.05.2014 14:53:57

FormatDateTime (Now, DateFormat.ShortDate)

27
10.12.2008 17:58:49
Понятия не имею, почему это не имеет больше голосов. Может быть, люди не понимают, что вы можете заменить «Сейчас» на любую дату? В любом случае, хорошо для вас. upvoted.
Aaron 14.05.2014 14:48:49

Или, если по какой-то причине вам не нравятся какие-либо более разумные ответы, просто отбросьте все справа от (и включая) пространство.

1
10.12.2008 18:17:36
Возможно ли, чтобы пользователь мог установить пробел в качестве символа разделения даты? Если это так, то ваше предложение потерпит неудачу - маловероятно, как это могло бы быть.
Matt Wilko 14.03.2012 16:45:33
Не достаточно знаком с VB.Net, чтобы сказать. Другие фреймворки и базы данных, которые я использовал, всегда возвращают дату в одном и том же формате, независимо от настроек ОС, и это зависит от приложения для перевода.
Brian Knoblauch 14.03.2012 19:06:43

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

Код

   Dim d As DateTime = Now
   Debug.WriteLine(d.ToLongDateString)
   Debug.WriteLine(d.ToShortDateString)
   Debug.WriteLine(d.ToString("d"))
   Debug.WriteLine(d.ToString("yyyy-MM-dd"))

Результаты

Wednesday, December 10, 2008
12/10/2008
12/10/2008
2008-12-10

Обратите внимание, что эти результаты будут различаться в зависимости от настроек культуры на вашем компьютере.

14
17.12.2008 19:15:28

Отформатируйте дату и время в короткую строку даты и конвертируйте обратно в дату

CDate(YourDate.ToString("d"))

Или используйте короткую строку даты

CDate(YourDate.ToShortDateString)
5
16.06.2017 21:46:50