可以看作是 Sun JDK5/6 的一个 BUG。你无法得到 1990 年 4 月 15 日 0 点到 1 点之间的任何时刻。
SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmmssSSS");
Date d = f.parse("19900414235959999");
d.setTime(d.getTime() + 1);
System.out.println(d);
输出结果是:
Sun Apr 15 01:00:00 CDT 1990
好像这个 BUG 比较复杂,目前也只是部分修复。