DateTime ToString issue with formatting months with “mm” specifier

后端 未结 3 543
眼角桃花
眼角桃花 2020-11-29 13:17

I have a problem to get the correct format. I am expecting \"2013/10\", but instead I get \"2013/00\".

Why is that, and how can I fix this?

DateTime          


        
相关标签:
3条回答
  • 2020-11-29 13:45

    mm is minutes. MM is month. You are using the wrong field.

    0 讨论(0)
  • 2020-11-29 13:47

    mm is minutes. You need to use MM which is months:

    var str2 = dt.ToString("yyyy/MM");
    
    0 讨论(0)
  • 2020-11-29 13:51

    mm is for minute while MM is for month.

    DateTime dt = DateTime.Parse("2013-Oct-01");
    string str2 = dt.ToString("yyyy/MM");
    

    See MSDN article DateTime.ToString méthode (String).

    For a more complete list:

    // Create date time 2008-03-09 16:05:07.123
    DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
    
    String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
    String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
    String.Format("{0:d dd ffffd ffffdd}", dt);  // "9 09 Sun Sunday" day
    String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
    String.Format("{0:m mm}",          dt);  // "5 05"            minute
    String.Format("{0:s ss}",          dt);  // "7 07"            second
    String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
    String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
    String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
    String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone
    
    0 讨论(0)
提交回复
热议问题