由于年末,某个项目需要查账,该同事离职了不久,我便被分配取协助机构部同事查款,从该项目里取出详细流水,再和机构部同事取的账户流水对比,结果傻了眼,两边时间对不上,一个是24小时计时,而该项目里边竟然用的是12小时计算,不禁有些傻眼。找到源码,发现sdf.format(new Date())时候用的时间格式表达式竟然是这个:yyyyMMddhhmmss!!
这实在是一个低级错误,时间格式表达式的大小写区分,我们真的一定要注意:
通过上图可以看出,HH和hh计算方法是不一样的,尤其是MM和mm,两者表达的意思完全不一致,SS和ss也是需要注意的地方,在使用过程中,我们应该注意:
public static String getFormatDateTime(String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(new Date());
}
public static void main(String[] args) {
String s1 = getFormatDateTime("yyyyMMddhhmmss"); // 12小时
String s2 = getFormatDateTime("yyyyMMddHHmmss"); // 24小时
System.out.println(s1);
System.out.println(s2);
}