在下面的代码中,我得到一个IllegalArgumentException,但我不明白为什么:
Calendar date = Calendar.getInstance();
date.clear();
date.setLenient(false);
date.set(2017, 2, 26, 2, 23);
date.getTime();//here is the Exception thrown
异常堆栈:
Exception in thread "main" java.lang.IllegalArgumentException: HOUR_OF_DAY: 2 -> 3
at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2829)
at java.util.Calendar.updateTime(Calendar.java:3393)
at java.util.Calendar.getTimeInMillis(Calendar.java:1782)
at java.util.Calendar.getTime(Calendar.java:1755)
at WildDog.main(WildDog.java:13)
有什么想法吗?
第一次回复后的更多细节: 时区是CEST Java是1.8.0_102(问题也在IBM 1.6_x上)
答案 0 :(得分:3)
对于给定的时区,时间根本不存在。在此期间,european countries的大多数都经历了DST转变。找出您的时区@JonSkeet建议并验证它。你的可能是CET - > CEST