时间类型的格式 ToString(HHmmss) VS ToString(hhmmss) 的区别
前段时间在为供水公司做远程代理收费(RemoteCharge)项目时(ChargeLog)表的字段ChargeTime要求以(1900-01-01 ??:??:??)的形式插入表中例如(1900-01-01 18:23:22) 即前边的'1900-01-01'不变后面的值是当前时间而且必须是以24小时计时
(下午三点十五分二十秒 )分别以两种方式计时表示形式如下
(1)12小时计时 :1900-01-01 03:15:20
(2)24小时计时:1900-01-01 15:15:20
通过以上示例可以清楚的看出两种时间计时方式差异 。如果是上午的时间两者是相同的,下午的时间就产生差异了,这种差异的产生直接影响到收费冲正的先后顺序问题。 由于同一天上午和下午记录如果以12小时计时方式就会使得时间先后顺序无法分辨。for example 下午3点(1900-01-01 03:15:20)显然比上午10点(1900-01-01 10:15:20)更晚些,但是第一种方式提交的数据就会让系统认为是上午的10点交费记录更晚些,所以当天的同一用户的交费时间就混乱了造成无法正确冲正,或者不允许冲正。使用24小时计时就不会产生如上所遇的麻烦!实例代码如下:
Entities.ChargeLog chargeLog = new Entities.ChargeLog(); //实例化一个收费记录对象
DateTime currentDate = DateTime.Now; //定义当前日期时间变量
---------------------注意下面两条语句的微小差异---------------------------
//错误的写法(12小时计时方式)
chargeLog.ChargeTime = Convert.ToDateTime(("1900-01-01 " + currentDate.ToString("hh:mm:ss"))); //将当前时间赋予ChargeLog对象的属性
//正确的写法(24小时计时方式)
chargeLog.ChargeTime = Convert.ToDateTime(("1900-01-01 " + currentDate.ToString("HH:mm:ss"))); //将当前时间赋予ChargeLog对象的属性
总结:
上边两行语句的差别就是红色字体的位置,只是大小写的不同计时方式就不同,就是这么简单,我以前就是没有注意过!