SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "1990-04-15 00:00:00";
System.out.println(sdf.format(sdf.parse(str)));
运行结果为:1990-04-15 01:00:00
这里为什么格式化后的日期多了一个小时?
补充啊,这里的时间改成任意的其他时间就正常
新人没有币,还请指导的解惑啊
我也想知道!! 神奇
你看看本地时区是哪,设置成北京时区
我运行了了
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str = "1990-04-15 01:00:00";
System.out.println(sdf.format(sdf.parse(str)));
发现结果 1990-04-15 01:00:00
运行下面的之后
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "1998-04-15 00:00:00";
System.out.println(sdf.format(sdf.parse(str)));
结果是这个:
1998-04-15 00:00:00
我也觉得很纳闷。我觉得有可能与时区有关系
神奇!我猜跟系统中英文语言可能有关,转换到特定点时会发生特殊变化。
改成其他时间都行,唯独这个时间不行,我也很郁闷,等待大神解答
改成其他时间都行,唯独这个时间不行,我也很郁闷,等待大神解答
改成其他时间都行,唯独这个时间不行,我也很郁闷,等待大神解答
网上搜索有人说是因为美国冬令时夏令时切换,会将时间调一个小时,会有一些日期的00:00:00不存在,直接从1点开始的,我这边遇到的日期就有,1989-04-16,1987-04-12,想问下有没有大佬有解决方案,服务器还不好切换时区
因为24时 日期格式是没有00点的。00点就认为是1点。晚上12点是24点。