Показывать только дату и время

В бритве MVC я помещаю текущую дату в базу данных, как это.

model.Returndate = DateTime.Now.Date.ToShortDateString(); 

Поскольку поле базы данных является типом данных datetime, и я конвертирую текущую дату в формат строки, это не работает. Как я могу это сделать? Я делаю строковый формат, потому что мне нужна дата в формате mm / dd / yyyy, а не в формате mm / dd / yyyy hh: mm: ss time.

РЕДАКТИРОВАТЬ:

В controllerе у меня есть

 var model = new ViewModel(); model.ReturnDate = DateTime.Now; return PartialView("PartialView", model); 

В частичном представлении у меня есть

 @Html.EditorFor(model => model.Returndate) 

Здесь он показывает дату как дата и время вместе … Я хочу только дату, которая будет отображаться. Не время. Надеюсь, это изменение объясняет лучше.

Если тип столбца DateTime в SQL, то он будет хранить время, когда вы передаете один или нет.

Было бы лучше сохранить дату должным образом:

 model.ReturnDate = DateTime.Now; 

а затем отформатируйте его, когда вам нужно отобразить его:

 @Html.Label(Model.ReturnDate.ToShortDateString()) 

Или, если вы используете EditorFor:

 @Html.EditorFor(model => model.ReturnDate.ToShortDateString()) 

или

 @Html.EditorFor(model => model.ReturnDate.ToString("MM/dd/yyyy")) 

Чтобы добавить свойство вашей модели, добавьте этот код:

 public string ReturnDateForDisplay { get { return this.ReturnDate.ToString("d"); } } 

Затем в вашем PartialView:

 @Html.EditorFor(model => model.ReturnDateForDisplay) 

РЕДАКТИРОВАТЬ:

Привет, ребята, просто хочу пояснить для этого ответа, что, говоря: «Если вы используете EditorFor», это означает, что вам нужно иметь шаблон EditorFor для типа значения, которое вы пытаетесь представить.

Шаблоны редактора – это classный способ управления повторяющимися элементами управления в MVC:

http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/

Вы можете использовать их для наивных типов, таких как String, как я сделал выше; но они особенно хороши для того, чтобы позволить вам создать набор полей ввода для более сложного типа данных.

Просто пришлось самому справиться с этим сценарием – нашел действительно простой способ сделать это, просто аннотируйте свою собственность в модели следующим образом:

 [DataType(DataType.Date)] public DateTime? SomeDateProperty { get; set; } 

Он также скроет кнопку времени с помощью выбора даты.

Извините, если этот ответ немного запоздал;)

Это работает, если вы хотите отображать в TextBox:

 @Html.TextBoxFor(m => m.Employee.DOB, "{0:dd-MM-yyyy}") 

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

 model.Returndate = DateTime.Now.Date; 

или, возможно,

 model.Returndate = DateTime.UtcNow.Date; 

Да, если вы посмотрите на базу данных с помощью SQL Server Studio или что-то еще, вы увидите полночь – но это не имеет значения, и когда вы выберете дату из базы данных и отобразите ее пользователю, вы можете применить соответствующий формат ,

EDIT: Что касается вашего отредактированного вопроса, проблема не в модели – это то, как вы указываете представление. Вы должны использовать что-то вроде:

 @Html.EditorFor(model => model.Returndate.Date.ToString("d")) 

где d – стандартный спецификатор формата даты и времени для шаблона короткой даты (что означает, что он учитывает текущие культурные настройки).

Это тот бит, который я неоднократно говорил – когда вы показываете дату / время для пользователя , настало время отформатировать его как дату без времени.

EDIT: Если это не сработает, должен быть способ украсить модель или представление с помощью строки формата – или что-то в этом роде. Я на самом деле не человек MVC, но похоже, что это должен быть хороший способ сделать это декларативно …

Вы можете изменить свой ViewModel, как показано ниже:

 [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}",ApplyFormatInEditMode = true)] 

Вы можете применить пользовательский формат времени даты, используя ToString например:

 DateTime.Now.Date.ToString("MM/dd/yyyy"); 

Дальнейшее чтение шаблона форматов DateTime.ToString можно найти здесь и здесь .

Изменить: после редактирования вопроса. Как и другие предлагаемые вам, вы должны применить формат даты на вашем экране:

 model.Returndate = DateTime.Now.Date; @Html.EditorFor(model => model.Returndate.Date.ToString("MM/dd/yyyy")) 

Я не уверен в Razor, но в ASPX вы делаете:

  <%if (item.Modify_Date != null) {%> <%=Html.Encode(String.Format("{0:D}", item.Modify_Date))%> <%} %> 

В Razor должно быть что-то похожее. Надеюсь, это поможет кому-то.

Если у вас есть цикл for, такой как приведенный ниже.

Изменить @ item.StartDate на @ item.StartDate.Value.ToShortDateString ()

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

  @foreach (var item in Model.TestList) {  } 
Type Start Date
@item.TypeName @item.StartDate.Value.ToShortDateString()

Вы можете просто преобразовать дату и время. Что-то вроде:

 @Convert.ToString(string.Format("{0:dd/MM/yyyy}", Model.Returndate)) 

У меня были некоторые проблемы с другими решениями на этой странице, так что подумал, что я заберу это.

 @Html.TextBoxFor(m => m.EndDate, "{0:d}", new { @class = "form-control datepicker" }) 

Поэтому вам нужно только добавить «{0: d}» во втором параметре, и вам должно быть хорошо идти.

[Display(Name = "Bill Date")] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public DateTime BillDate { get; set; }

Теперь будет показана дата вашего билла.

введите описание изображения здесь

  • почему DateTime.ToString («dd / MM / yyyy») дает мне dd-MM-yyyy?
  • Как отформатировать DateTime до 24 часов?
  • Преобразование строки в DateTime в c #
  • Усекать время от времени до второго (удалить миллисекунды) в T-SQL
  • извлечь часть даты из DateTime в C #
  • Использование свойств DateTime в Code-First Entity Framework и SQL Server
  • Преобразование .NET DateTime в SqlDateTime
  • Параметр DateTime с часовым поясом формы PST / CEST / UTC / etc.
  • Создание DateTime в определенном часовом поясе в c #
  • Как анализировать даты в нескольких форматах с помощью SimpleDateFormat
  • Преобразовать java.util.Date в java.time.LocalDate
  • Давайте будем гением компьютера.