GeekZilla
DateTime.ToString() Patterns
All the patterns:
0 | MM/dd/yyyy | 08/22/2006 |
1 | dddd, dd MMMM yyyy | Tuesday, 22 August 2006 |
2 | dddd, dd MMMM yyyy | HH:mm Tuesday, 22 August 2006 06:30 |
3 | dddd, dd MMMM yyyy | hh:mm tt Tuesday, 22 August 2006 06:30 AM |
4 | dddd, dd MMMM yyyy | H:mm Tuesday, 22 August 2006 6:30 |
5 | dddd, dd MMMM yyyy | h:mm tt Tuesday, 22 August 2006 6:30 AM |
6 | dddd, dd MMMM yyyy HH:mm:ss | Tuesday, 22 August 2006 06:30:07 |
7 | MM/dd/yyyy HH:mm | 08/22/2006 06:30 |
8 | MM/dd/yyyy hh:mm tt | 08/22/2006 06:30 AM |
9 | MM/dd/yyyy H:mm | 08/22/2006 6:30 |
10 | MM/dd/yyyy h:mm tt | 08/22/2006 6:30 AM |
10 | MM/dd/yyyy h:mm tt | 08/22/2006 6:30 AM |
10 | MM/dd/yyyy h:mm tt | 08/22/2006 6:30 AM |
11 | MM/dd/yyyy HH:mm:ss | 08/22/2006 06:30:07 |
12 | MMMM dd | August 22 |
13 | MMMM dd | August 22 |
14 | yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK | 2006-08-22T06:30:07.7199222-04:00 |
15 | yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK | 2006-08-22T06:30:07.7199222-04:00 |
16 | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' | Tue, 22 Aug 2006 06:30:07 GMT |
17 | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' | Tue, 22 Aug 2006 06:30:07 GMT |
18 | yyyy'-'MM'-'dd'T'HH':'mm':'ss | 2006-08-22T06:30:07 |
19 | HH:mm | 06:30 |
20 | hh:mm tt | 06:30 AM |
21 | H:mm | 6:30 |
22 | h:mm tt | 6:30 AM |
23 | HH:mm:ss | 06:30:07 |
24 | yyyy'-'MM'-'dd HH':'mm':'ss'Z' | 2006-08-22 06:30:07Z |
25 | dddd, dd MMMM yyyy HH:mm:ss | Tuesday, 22 August 2006 06:30:07 |
26 | yyyy MMMM | 2006 August |
27 | yyyy MMMM | 2006 August |
The patterns for DateTime.ToString ( 'd' ) :
0 | MM/dd/yyyy | 08/22/2006 |
The patterns for DateTime.ToString ( 'D' ) :
0 | dddd, dd MMMM yyyy | Tuesday, 22 August 2006 |
The patterns for DateTime.ToString ( 'f' ) :
0 | dddd, dd MMMM yyyy HH:mm | Tuesday, 22 August 2006 06:30 |
1 | dddd, dd MMMM yyyy hh:mm | tt Tuesday, 22 August 2006 06:30 AM |
2 | dddd, dd MMMM yyyy H:mm | Tuesday, 22 August 2006 6:30 |
3 | dddd, dd MMMM yyyy h:mm | tt Tuesday, 22 August 2006 6:30 AM |
The patterns for DateTime.ToString ( 'F' ) :
0 | dddd, dd MMMM yyyy HH:mm:ss | Tuesday, 22 August 2006 06:30:07 |
The patterns for DateTime.ToString ( 'g' ) :
0 | MM/dd/yyyy HH:mm | 08/22/2006 06:30 |
1 | MM/dd/yyyy hh:mm | tt 08/22/2006 06:30 AM |
2 | MM/dd/yyyy H:mm | 08/22/2006 6:30 |
3 | MM/dd/yyyy h:mm tt | 08/22/2006 6:30 AM |
The patterns for DateTime.ToString ( 'G' ) :
0 | MM/dd/yyyy HH:mm:ss | 08/22/2006 06:30:07 |
The patterns for DateTime.ToString ( 'm' ) :
0 | MMMM dd | August 22 |
The patterns for DateTime.ToString ( 'r' ) :
0 | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' | Tue, 22 Aug 2006 06:30:07 GMT |
The patterns for DateTime.ToString ( 's' ) :
0 | yyyy'-'MM'-'dd'T'HH':'mm':'ss | 2006-08-22T06:30:07 |
The patterns for DateTime.ToString ( 'u' ) :
0 | yyyy'-'MM'-'dd HH':'mm':'ss'Z' | 2006-08-22 06:30:07Z |
The patterns for DateTime.ToString ( 'U' ) :
0 | dddd, dd MMMM yyyy HH:mm:ss | Tuesday, 22 August 2006 06:30:07 |
The patterns for DateTime.ToString ( 'y' ) :
0 | yyyy MMMM 2006 August |
Building a custom DateTime.ToString Patterns
The following details the meaning of each pattern character. Note the K and z character.
d | Represents the day of the month as a number from 1 through 31. A single-digit day is formatted without a leading zero |
dd | Represents the day of the month as a number from 01 through 31. A single-digit day is formatted with a leading zero |
ddd | Represents the abbreviated name of the day of the week (Mon, Tues, Wed etc) |
dddd | Represents the full name of the day of the week (Monday, Tuesday etc) |
h | 12-hour clock hour (e.g. 7) |
hh | 12-hour clock, with a leading 0 (e.g. 07) |
H | 24-hour clock hour (e.g. 19) |
HH | 24-hour clock hour, with a leading 0 (e.g. 19) |
m | Minutes |
mm | Minutes with a leading zero |
M | Month number |
MM | Month number with leading zero |
MMM | Abbreviated Month Name (e.g. Dec) |
MMMM | Full month name (e.g. December) |
s | Seconds |
ss | Seconds with leading zero |
t | Abbreviated AM / PM (e.g. A or P) |
tt | AM / PM (e.g. AM or PM |
y | Year, no leading zero (e.g. 2001 would be 1) |
yy | Year, leadin zero (e.g. 2001 would be 01) |
yyy | Year, (e.g. 2001 would be 2001) |
yyyy | Year, (e.g. 2001 would be 2001) |
K | Represents the time zone information of a date and time value (e.g. +05:00) |
z | With DateTime values, represents the signed offset of the local operating system's time zone from Coordinated Universal Time (UTC), measured in hours. (e.g. +6) |
zz | As z but with leadin zero (e.g. +06) |
zzz | With DateTime values, represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. (e.g. +06:00) |
f | Represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. |
ff | Represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. |
fff | Represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. |
ffff | Represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. While it is possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. The precision of date and time values depends on the resolution of the system clock. On Windows NT 3.5 and later, and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds. |
fffff | Represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. While it is possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. The precision of date and time values depends on the resolution of the system clock. On Windows NT 3.5 and later, and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds. |
ffffff | Represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. While it is possible to display the millionths of a second component of a time value, that value may not be meaningful. The precision of date and time values depends on the resolution of the system clock. On Windows NT 3.5 and later, and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds. |
fffffff | Represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. While it is possible to display the ten millionths of a second component of a time value, that value may not be meaningful. The precision of date and time values depends on the resolution of the system clock. On Windows NT 3.5 and later, and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds. |
F | Represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. Nothing is displayed if the digit is zero. |
: | Represents the time separator defined in the current DateTimeFormatInfo..::.TimeSeparator property. This separator is used to differentiate hours, minutes, and seconds. |
/ | Represents the date separator defined in the current DateTimeFormatInfo..::.DateSeparator property. This separator is used to differentiate years, months, and days. |
" | Represents a quoted string (quotation mark). Displays the literal value of any string between two quotation marks ("). Your application should precede each quotation mark with an escape character (\). |
' | Represents a quoted string (apostrophe). Displays the literal value of any string between two apostrophe (') characters. |
%c | Represents the result associated with a c custom format specifier, when the custom date and time format string consists solely of that custom format specifier. That is, to use the d, f, F, h, m, s, t, y, z, H, or M custom format specifier by itself, the application should specify %d, %f, %F, %h, %m, %s, %t, %y, %z, %H, or %M. For more information about using a single format specifier, see Using Single Custom Format Specifiers. |
||\c || Represents the escape character, and displays the character "c" as a literal when that character is preceded by the escape character (\). To insert the backslash character itself in the result string, the application should use two escape characters ("\\").
Any other character copies any other character to the result string, without affecting formatting. ||
Paul is the COO of kwiboo ltd and has more than 20 years IT consultancy experience. He has consulted for a number of blue chip companies and has been exposed to the folowing sectors: Utilities, Telecommunications, Insurance, Media, Investment Banking, Leisure, Legal, CRM, Pharmaceuticals, Interactive Gaming, Mobile Communications, Online Services.
Paul is the COO and co-founder of kwiboo (http://www.kwiboo.com/) and is also the creator of GeekZilla.
Comments
Rachit
said:
Sometimes, you need to display milliseconds in the regular timestamp. Here's how it is: ToString("yyyy-MM-dd HH:mm:ss:fff")
John S
said:
Here's a cheat sheet with all the .NET Format Strings:
Mike
said:
Can you create date string in format like this Tue 22nd Feb 2007 ?
phayman
said:
.ToString("ddd dd MMM yyyy")
thank
said:
awesome resource, thanks!
Stuey G
said:
Hi, can you modify your example to show difference between the time formatters for Hour. HH & hh.
Saikat
said:
Excellent.. Many thanks to you Paul
Alicia
said:
Thank you!
RealityMasque
said:
Does anyone know if there is a problem with the time zone? I've been testing formatting a DateTime using the 'k' character, but I never see anything, not even +0...
- O8
othman
said:
RE: Does anyone know if there is a problem with the time zone? I've been testing formatting a DateTime using the 'k' character, but I never see anything, not even +0...
use "zz" or "zzz"
example:
"yyyy-MM-dd'T'HH:mm:ss.fffzzz" will show date as
2008-11-27T00:21:39.866+0200
Dev
said:
Brilliant stuff, its handy to have all information on one single page. thanks buddy !
KD
said:
I need to convert the date to format "YYYY-MM-DD HH:MM:SS"
EG : 2009-04-14 15:16:45
thnx in advance
WildAnjel
said:
how to get 'nd', 'rd', or 'th' with date, like 20th
eldarion
said:
Thanks for this great article! Much better then the Microsoft's official DateTime.ToString() documentation.
naresh
said:
Awesome, thanks for this
.net Starter
said:
Gr8 help Thanks for it !!
shc
said:
very helpful about DateTime Tostring.http://www.cnblogs.com/shuchao/
Greatful Developer
said:
This cheat sheet has been a life saver!!! Thank You
Adam
said:
Umm...silly question maybe, but what programming language is this information for? A little basic introduction would be helpful. I came to it after googling for a custom-formated string representation of a javascript dater object, but I'm pretty sure it isn't standard javascript. Is "DateTIme" as custom/plugin javascript class or a standard class in some other language?
reubenh
said:
excellent resource, tagging is a must!!
Kiran
said:
Thanks a lot. It was useful to me.
lupita
said:
tengo una duda enorme, me encargaron hacer un programa que me sirva para identificar todas las horas del mundo el detalle es que no se como hacerlo quisiera saber si me pudieras ayudar?
Avinash
said:
Thanks a lot's
Adeel Fakhar
said:
Awesome Article. I am very much impressed the way you deliver your knowledge to us. Awesome. Keep Sharing
Akhtar Jahan
said:
Very helpfull, thanks
dr.mabuse
said:
paul you`re a faca!
EB
said:
Very helpful. Thank you.
Muthu
said:
I have tried for milisec with below format but does not work.can you help me
yyyy-MM-dd HH:mm:ss:fff
MMMM dd, yyyy HH:mm:ss.fffzzz
I want the dataformat for June 17, 2010 13:03:03.4589 PM .
sonu
said:
How to convert string date "Thu Mar 11 09:42:36 2010" in datetime format so that i can insert in a database
Lavanya
said:
put so working examples up, when I try to use them they don't work.
Albert
said:
how can I get the date in following format:
22nd of July, year 2010
andrei
said:
thanks
Chris Schaller
said:
If you're using .Net, then you can parse any custom date formats using DateTime.ParseExact then save it to the database the same way as any other DateTime object
DateTime.ParseExact("Thu Mar 11 09:42:36 2010", "ddd MMM dd HH:mm:ss yyyy", null)
I use this a lot when importing data from legacy or 3rd party apps when the date format is fixed but .Net or the database wont implicity convert it.
krish
said:
hi...
i need to covert 12-dec-2010 to 12-12-2010 anyone can help me to find gud soln.....!
Palmani
said:
Many more thanks for give like this. All format given...
Murat
said:
Thanks Paul good job.
Alexandr
said:
Big thanks!
Anil Singh
said:
Thnak x
Hardik
said:
Really ,,, very very good work... you saved my time
Hareesh
said:
Thank u..
an excellent ariticle
justforfun
said:
i am stuck ....
the problem is a string take a date from a txt file
then after that i cant convert this string to a datetime....
Dean
said:
Thanks, I use this page at least once a week.
sharath
said:
its good
sharath
said:
its good
Morgs
said:
This is the best trutorial ever! thanks to you...
Raji
said:
Very useful notes... Thanks a lot!
Good job..
pichy
said:
very gud....very nice information
arun
said:
goog
Mat
said:
Great Overview!! thxalot
sharik
said:
thanks, great
Alfroy
said:
Muchas gracias! Me ha ayudado mucho. El post es muy completo.
Sakshi Garg
said:
Really that is a good way to understand trhanks a lot
Hemant
said:
I am using yyyy-MM-ddTHH:mm:ss.fffffffzzz for dat of birth, but for DOB before 1980 is showing GMT+11 and for DOB after 1980 it is showing GMT+10 in string. How should i restrict it to GMT+10 for all DOB???
Manas
said:
Good one -most helpful in developments
Su Thaw
said:
I would like to change Sun Oct 14 13:33:40 MMT 2012 to String. I don't know what date time to string patterns should use for this date. Please kindly advice me. I am looking forward your advice.
Sovietik
said:
I love ya men!!!!!!!!!!!!!!!!!!!!!!!!!
nonUSuser
said:
please use PM time for your exemple. eg 18:30 so that HH:mm is really meaningfull
DevPer
said:
I always look-up for your website to see your very useful post. thanks a lot.