format date in c#
Solution 1:
It's almost the same, simply use the DateTime.ToString()
method, e.g:
DateTime.Now.ToString("dd/MM/yy");
Or:
DateTime dt = GetDate(); // GetDate() returns some date
dt.ToString("dd/MM/yy");
In addition, you might want to consider using one of the predefined date/time formats, e.g:
DateTime.Now.ToString("g");
// returns "02/01/2009 9:07 PM" for en-US
// or "01.02.2009 21:07" for de-CH
These ensure that the format will be correct, independent of the current locale settings.
Check the following MSDN pages for more information
- DateTime.ToString() method
- Standard Date and Time Format Strings
- Custom Date and Time Format Strings
Some additional, related information:
If you want to display a date in a specific locale / culture, then there is an overload of the ToString()
method that takes an IFormatProvider
:
DateTime dt = GetDate();
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM"
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39"
Or alternatively, you can set the CultureInfo
of the current thread prior to formatting a date:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
dt.ToString("g"); // returns "5/26/2009 10:39 PM"
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
dt.ToString("g"); // returns "26.05.2009 22:39"
Solution 2:
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
Look up "format strings" on MSDN to see all formatting options.
Use yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
for the date component
Use h
, hh
, H
, HH
, m
, mm
, s
, ss
for the time-of-day component
Solution 3:
In you can also write
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
for a short notation
or
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
for a long notation like "Sunday, Febuary 1, 2009".
Or take a look at MSDN for the possibities of .ToString("???");
Solution 4:
Try this :
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009
Solution 5:
Better yet, use just
DateTime.Now.ToString()
or
DateTime.Now.ToString(CultureInfo.CurrentCulture)
to use the format the user prefers.