当前位置: 代码迷 >> J2EE >> SimpleDateFormat解析有关问题
  详细解决方案

SimpleDateFormat解析有关问题

热度:20   发布时间:2016-04-17 23:06:09.0
SimpleDateFormat解析问题
今天碰到一个很奇怪的问题,就是在调用SimpleDateFormat类的parse方法,得到了意外的结果。

public static void main(String[] args) throws ParseException {
SimpleDateFormat format1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
SimpleDateFormat format2=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(format2.parse("1990-04-15"));
System.out.println(format1.parse("1990-04-15 00:00:00.000"));
System.out.println(format2.parse("1990-04-16"));
System.out.println(format1.parse("1990-04-16 00:00:00.000"));
}



得到的结果是这样的:
Sun Apr 15 01:00:00 CDT 1990
Sun Apr 15 01:00:00 CDT 1990
Mon Apr 16 00:00:00 CDT 1990
Mon Apr 16 00:00:00 CDT 1990

直接导致业务数据错乱,当然工程中已经做了其他方法来再次检验这个数据。
让我感到不解的是,为什么这一天是特殊的,会解析出1点来?(生产环境发现了有2天,还有一天忘记是哪天了)
请教一下高手,是我对SimpleDateFormat类的使用上有问题吗?
------解决思路----------------------
这个时间是正确的,因为中国在1986-1991年实施了夏令时制度。
详细的请看这里
  相关解决方案