早上写了一个关于接口的示例代码,结果发现了一个bug。接口中我内部将DateTime转化为12小时进制的字符串,这样就导致在用户没有指定小时时,不会默认写入00,而是12.
例如:
DateTime dt2 = new DateTime(2012, 1, 1);
Console.WriteLine("tostring:" + dt2.ToString()); //2012/1/1 0:00:00
Console.WriteLine("yyyy/MM/dd hh:mm:ss" + dt2.ToString("yyyy/MM/dd hh:mm:ss")); //2012/01/01 12:00:00
Console.WriteLine("yyyy/MM/dd HH:mm:ss" + dt2.ToString("yyyy/MM/dd HH:mm:ss")); //2012/01/01 00:00:00
这里的HH和hh不能弄混。
摘自msdn: http://msdn.microsoft.com/zh-cn/library/8kb3ddd4(v=vs.80).aspx