Date Formatting in C#

Cheat sheet detailing formatting options for dates and times in C#.

Example Usage

<%= String.Format("{specifier}", DateTime.Now) %>
@DateTime.Now.ToString("F")
@DateTime.Now.ToString("hh:mm:ss.fff")

Specifier Description Output
d Short Date 08/04/2007
D Long Date 08 April 2007
t Short Time 21:08
T Long Time 21:08:59
f Full date and time 08 April 2007 21:08
F Full date and time (long) 08 April 2007 21:08:59
g Default date and time 08/04/2007 21:08
G Default date and time (long) 08/04/2007 21:08:59
M Day / Month 08 April
r RFC1123 date Sun, 08 Apr 2007 21:08:59 GMT
s Sortable date/time 2007-04-08T21:08:59
u Universal time, local timezone 2007-04-08 21:08:59Z
Y Month / Year April 2007
dd Day 08
ddd Short Day Name Sun
dddd Full Day Name Sunday
hh 2 digit hour 09
HH 2 digit hour (24 hour) 21
mm 2 digit minute 08
MM Month 04
MMM Short Month name Apr
MMMM Month name April
ss seconds 59
fff milliseconds 120
FFF milliseconds without trailing zero 12
tt AM/PM PM
yy 2 digit year 07
yyyy 4 digit year 2007
: Hours, minutes, seconds separator, e.g. {0:hh:mm:ss} 09:08:59
/ Year, month , day separator, e.g. {0:dd/MM/yyyy} 08/04/2007
. milliseconds separator  

Date Posted: Sunday, April 8, 2007 9:11 PM
Last Updated: Wednesday, October 23, 2013 1:43 PM
Posted by: Mikesdotnetting
Total Views to date: 171864

27 Comments

Friday, April 10, 2009 11:19 AM - Navi

this is very usefull...
thanks

Wednesday, April 15, 2009 10:02 AM - Pratul

Gr8 !! Gr8 !!, this is what exactly I was searching !
Thank you very much.
:)

Friday, April 24, 2009 10:24 AM - bharath

nice information.tnx

Thursday, June 4, 2009 7:32 AM - stephen

Nice piece of info.. thanks a lot

Wednesday, July 22, 2009 10:58 AM - Carsten

Perfect - exactly what i needed..

Wednesday, December 16, 2009 10:27 AM - Krishnaraj

Nice piece of quick information. Thank you, saved my time

Wednesday, March 10, 2010 12:04 PM - Ric

You might also want to mention that the formatting is available through the .toString() method as well as the string.Format one.

DateTime dt = new DateTime();
string formattedDate = dt.toString("dd/MM/yyyy");

Thursday, June 3, 2010 9:56 AM - da programmer

This Is The Shieeet

meghci boku

Thursday, June 24, 2010 6:25 AM - Jude Love

thanks dude

Friday, August 27, 2010 6:17 AM - Anil

This is very useful.

Thursday, September 23, 2010 4:25 PM - Nilay

Thanks

I was looking for that in MSDN & it was too much information in it. This one is good.

Tuesday, June 7, 2011 6:57 AM - dotJupiter

Great article. It summarizes all the parameters that I have been looking for a long time.

Friday, March 30, 2012 5:09 PM - sabit

useful information about datetime format!!!

Friday, March 30, 2012 5:11 PM - Sabit

useful information

Tuesday, May 15, 2012 8:54 AM - Jezzrel

Yes, nice one. It's very useful...

Friday, June 1, 2012 2:11 PM - nitesh

This is very useful.

Sunday, July 1, 2012 11:41 AM - Muktadir

Thanks

Tuesday, January 8, 2013 4:12 AM - sam

good

Wednesday, January 16, 2013 6:00 AM - Prasun Chatterjee

Great article.Thanks. But what if I need something like 2nd January,2013??
Thanks in advance.

Thursday, January 17, 2013 8:03 AM - Mike

@Prasun,

You will have to write your own method to generate the ordinal suffix based on the date, and then build your own string using that. There is no short cut formatter for what you want that I know of.

Wednesday, July 10, 2013 3:03 PM - Navina

tnks 4 ur info..
quite interesting....!

Wednesday, August 14, 2013 10:52 AM - Shreyas

Good one...Thanks..

Wednesday, October 30, 2013 11:34 AM - Mayur

Thanks..........................

Thursday, April 24, 2014 12:28 PM - sandeep sharma

Nice

Thanks !!

Saturday, May 31, 2014 8:39 AM - vikas

nice

Tuesday, September 30, 2014 1:56 PM - Bob Rodes

The short date option (d) doesn't include leading zeros in month and day, so it would actually render 8/4/2007. To get the leading zeros the format needs to be spelled out: MM/dd/yyyy or dd/MM/yyyy. http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx has all the formats you never use...

Wednesday, November 12, 2014 10:56 AM - Jomon John

It's good.
Thank you....
Add your comment

If you have any comments to make about this article, please use this form to do so. Make sure that your comment relates specifically to the article above. More general comments can be posted through the form on the Contact page.

Please note, all comments are moderated, and some may not be published. The kind of things that will ensure your comment is deleted without ever seeing the light of day are as follows:

  • Not relevant to the article
  • Gratuitous links to your own site or product
  • Anything abusive or libellous
  • Spam
  • Anything in a language I don't understand including gibberish.

I do not pass email addresses on to spammers, so a valid one will assist me in responding to you personally if required.

Recent Comments

Gautam 11/20/2014 8:01 AM
In response to I'm Writing A Book On WebMatrix
Hello Mike, I read your book, loved it! However, I have a few request/suggestions: 1) an example...

Bret Dev 11/19/2014 8:39 PM
In response to The Difference Between @Helpers and @Functions In WebMatrix
Excellent post! One concern - where can you place global @Functions code within an MVC project to Is...

Rob Farquharson 11/19/2014 4:28 PM
In response to iTextSharp - Links and Bookmarks
How can I place text at an absolute position on the page? Also, how can I rotate text?...

Andy 11/17/2014 8:08 PM
In response to MVC 5 with EF 6 in Visual Basic - Sorting, Filtering and Paging
Hello I'm testing your sorting instructions above. This is great and I was able to get it to work...

Gautam 11/17/2014 5:51 PM
In response to WebMatrix - Database Helpers for IN Clauses
Hi Mike, I am very new to programming: In the above example if I want to use a delete button the...

donramon 11/17/2014 3:22 PM
In response to Entity Framework 6 Recipe - Alphabetical Paging In ASP.NET MVC
Congratulations on your new website look and the excellent articles. Thank you!...

Gautam 11/17/2014 11:26 AM
In response to Looking At The WebMatrix WebGrid
Hi Mike, I add the jquery script at the end of my html file.. when ajax attribute is added to the be...

Chet Ripley 11/15/2014 6:57 PM
In response to Adding A New Field
It appears the command is case sensitive. I had the same issue as Cameron. When I changed the to it...

Alvin 11/14/2014 12:49 PM
In response to Razor Web Pages E-Commerce - Adding A Shopping Cart To The Bakery Template Site
Great article Mike! When do you plan to extend the bakery shopping cart beyond this point?...

Gautam 11/14/2014 10:16 AM
In response to Web Pages - Efficient Paging Without The WebGrid
to get the count can we use only the below sql, why to join category and author table var sql =...