Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET MVC displaying date without time

I have my model field decorated in the following way:

[DataType(DataType.Date)]
[Display(Name = "Date of birth")]
public string DateOfBirth { get; set; }

When I want to display the value in the view using the following code:

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

The problem is that the date is displayed together with its time value. I wonder why it does not take DateType attribute into consideration and displays only the date value without time. I know that I may create a display template for DateTime but in other cases than date of birth I want to show time together with date. How to solve the problem?

like image 842
GUZ Avatar asked Jul 06 '11 07:07

GUZ


4 Answers

The problem you have here is that you are using a string value rather than a DateTime.

change your model to be:

[DataType(DataType.Date)]
[Display(Name = "Date of birth")]
public DateTime? DateOfBirth { get; set; }

DataType will only work if it's a DateTime type, you also get the added advantage that it will automatically validate it as a valid date when using a DateTime. If you use string, you will have to use a regular expression validator to ensure a proper date has been entered.

like image 169
Erik Funkenbusch Avatar answered Nov 14 '22 11:11

Erik Funkenbusch


This should do it for edit mode and display

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

though if it is just display, this might work

[DisplayFormat(DataFormatString = "{0:d}")]
like image 29
dove Avatar answered Nov 14 '22 11:11

dove


Use DisplayFormatAttribute to indicate format when value is displayed. Also, you could create two DisplayTemplates, Date and DateTime, and use UIHintAttribute to specify template

like image 6
archil Avatar answered Nov 14 '22 11:11

archil


You can use ToShortDateString() or ToLongDateString() to display date only,example:

@Model.EventDate.ToShortDateString()
@Model.EventDate.ToLongDateString()
like image 6
zallexy Avatar answered Nov 14 '22 12:11

zallexy