黑马程序员技术交流社区

标题: 日期格式化遇到问题,求解!谢谢! [打印本页]

作者: 小王同志    时间: 2011-11-16 19:44
标题: 日期格式化遇到问题,求解!谢谢!
本帖最后由 潜王伟 于 2011-11-17 14:17 编辑

public static void main(String[] args) throws ParseException {
SimpleDateFormat fm1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat fm2 = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = new Date();
System.out.println(fm1.format(d1));

Date d2 = fm2.parse("1989-12-04");
System.out.println(fm1.format(d2));

Date d3 = fm2.parse("1989-12-01");
System.out.println(fm1.format(d3));
}
运行结果:
2011-11-16 17:43:54
1989-12-04 01:00:00
1989-12-01 00:00:00
疑惑:第2个日期打印出来为什么是 01:00:00 ,不是00:00:00呢?
作者: 杨杰    时间: 2011-11-16 20:49
2011-11-16 20:49:24
1989-12-04 00:00:00
1989-12-01 00:00:00
这是我的测试结果,你在试试。
作者: 任俊杰    时间: 2011-11-16 23:28
呵呵,没有可回答的了,但还是顶一个。。
作者: 小王同志    时间: 2011-11-17 08:35
杨杰 发表于 2011-11-16 20:49
2011-11-16 20:49:24
1989-12-04 00:00:00
1989-12-01 00:00:00

灵异事件,我这有时候是01,有时候是00...
这个完全没有任何原理可以解释的通啊,纠结....
作者: quanhui    时间: 2011-11-17 12:27
本帖最后由 quanhui 于 2011-11-17 12:27 编辑

1986年至1991年,中华人民共和国在全国范围实行了六年夏令时,每年从4月中旬的第一个星期日2时整(北京时间)到9月中旬第一个星期日的凌晨2时整(北京夏令时)。除1986年因是实行夏令时的第一年,从5月4日开始到9月14日结束外,其它年份均按规定的时段施行。夏令时实施期间,将时间向后调快一小时。1992年4月5日后不再实行。所以,楼主的问题可能是夏令时在搞鬼。
作者: 咪咪    时间: 2011-11-17 12:51
每个系统不一样稍微会有差别的。
作者: 小王同志    时间: 2011-11-17 14:12
quanhui 发表于 2011-11-17 12:27
1986年至1991年,中华人民共和国在全国范围实行了六年夏令时,每年从4月中旬的第一个星期日2时整(北京时间 ...

长见识了,我纠结了一天了!谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2