Конвертировать DateTime в Date - PullRequest
       10

Конвертировать DateTime в Date

2 голосов
/ 27 августа 2010

Код:

  <% foreach (var item in Model) { %>   
  <td>
     <%= Html.Encode(item.BirthDate) %>
  </td>
  <% } %>

показать это: 24.08.2009, 12:00:00, но мне нужна только дата (24.08.2009).Можно обойтись без какого-либо форматирования в действии контроллера

Ответы [ 5 ]

6 голосов
/ 27 августа 2010

Есть несколько способов сделать это. Если вы используете MVC 2, вы можете использовать DisplayTemplate. Просто поместите файл DateTime.ascx в папку / Views / Shared / DisplayTemplates и строка кода, которая будет в нем:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%: Model.HasValue ? Model.Value.ToShortDateString() : string.Empty %>

(Примечание: если вы используете синтаксис <%: тогда вам не нужен Html.Encode (), потому что <%: выполняет кодировку HTML для вас - но это только если вы используете VS2010. Если вы ' повторно использовать MVC 2 с VS2008, затем придерживаться Html.Encode () для этой части). Затем, на ваш взгляд, вы просто сделаете это: </p>

<%: Html.DisplayFor(m => m.BirthDate) %>

Это изменит формат, чтобы в вашем приложении была указана только дата для всех DateTime. Конечно, вы могли бы поставить это прямо в поле зрения. Но DisplayTemplate изменит его и для всех других DateTime, и вам не придется беспокоиться об этом в представлении, поскольку это происходит автоматически.

2 голосов
/ 25 августа 2011

Если BirthDate является типом строки

<%= Html.Encode(!String.IsNullOrEmpty(item.BirthDate) ? 
    Convert.ToDateTime(item.BirthDate).ToShortDateString() : item.BirthDate) %> 

Если дата рождения - тип данных datetime

<%=Html.Encode(String.Format("{0:MM/dd/yyyy}", item.BirthDate))%>
0 голосов
/ 27 августа 2010
  <% foreach (var item in Model) { %>   
  <td>
     <%= Html.Encode(item.BirthDate.ToString("MM/dd/yyyy")) %>
  </td>
  <% } %>
0 голосов
/ 27 августа 2010

Если item.BirthDate является типом DateTime, вы можете использовать метод ToShortDateString ():

item.BirthDate.ToShortDateString();
0 голосов
/ 27 августа 2010

Я бы сказал, что форматирование является ответственностью представления, а не контроллера, поэтому отформатируйте вывод следующим образом:

<% foreach (var item in Model) { %>    
<td> 
    <%= Html.Encode(item.BirthDate.ToShortDateString() %>
</td> 
<% } %> 
...