ddMMyy和ddmmyy日期格式之间的区别

时间:2015-02-04 07:28:58

标签: c# .net datetime

我想知道C#中ddMMyyddmmyy日期格式之间的区别。

当我尝试将字节数组转换为日期时,相同的字节会为这两种格式生成不同的日期。

byte[] bb = { 0x30, 0x34, 0x30, 0x32, 0x31, 0x35 };
DateTime ddmm = DateTime.ParseExact(System.Text.Encoding.ASCII.GetString(bb), "ddmmyy", System.Globalization.CultureInfo.InvariantCulture);
DateTime ddmm1 = DateTime.ParseExact(System.Text.Encoding.ASCII.GetString(bb), "ddMMyy", System.Globalization.CultureInfo.InvariantCulture);

ddmm变量已于2015年1月4日'虽然ddmm1已经在2015年2月4日'。奇怪!!

3 个答案:

答案 0 :(得分:3)

实际上很简单。

  • mm代表会议记录;
  • MM代表数月。

有关规范,请参阅MSDN上的Custom Date and Time Format Strings

答案 1 :(得分:2)

mm specifier是几分钟。 MM specifier已有好几个月了。

自你的

System.Text.Encoding.ASCII.GetString(bb)

040215作为string返回,如果您使用ddmmyy格式进行解析,则您的日期部分将被解析为4,您的分钟部分将被解析为{{1} 1}}和您的年份部分将被解析为2,因为您使用InvariantCulture并且默认情况下当前日历的Calendar.TwoDigitYearMax property2015

2029的其他部分将是其默认值。这就是你的DateTime将成为的原因;

ddmm

但是,如果您使用04/01/2015 00:02:00 // 4 Jan 2015 2 AM. 格式进行解析,那么您的日期部分将被解析为ddMMyy,您的月份部分将被解析为4,您的年份部分将被解析为{{ 1}}以及2的其他 部分将是其默认值。

这就是你2015将会出现的原因;

DateTime

答案 2 :(得分:0)

日期格式区分大小写。

MM 生成两位数的月份数,而 mm 生成两位数的分钟数。解释为here