Sunday, March 27, 2011

format date in c#

hi

how can i format date ? dd/mm/yyyy or mm/dd/yy

like in VB format("dd/mm/yy",now)

how can i do it in c#

thank's

From stackoverflow
  • It's almost the same, simply use the ToString() method of the DateTime type, 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 format, 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


    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"
    
    Arjan Einbu : Should be capital letters MM for month, mm means minutes...
    Michael Haren : I encourage you to follow Martin's advice and go with the predefined codes, which are culture aware. You might not need it now but in the future it could make things easier.
  • 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

  • Try this :

    String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
    String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
    
    abelenky : This example will in turn call Date.ToString(string format), as shown below in Martin's answer. That is a simpler, more direct way, than going through String.Format.
    Canavar : yes, you are right, Martin's answer is the direct one, thanks.
  • 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("???");

  • Better yet, use just DateTime.Now.ToString() or DateTime.Now.ToString(CultureInfo.CurrentCulture) to use the format the user prefers.

  • Here's a great resource that I use. Also check out the discussion!

    http://blog.stevex.net/index.php/string-formatting-in-csharp/

  • check this link. The same methods apply for VB also ...

0 comments:

Post a Comment