Igo*_*iwi 4 java simpledateformat
在 java 1.8 上此代码失败
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
dateFormat.setLenient(false);
dateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
dateFormat.parse("03/11/2007 02:05:01");
Run Code Online (Sandbox Code Playgroud)
有趣,03:05:01解析正确
Jon*_*eet 13
是的,那是因为 2007-03-11T02:05:01 从未出现在 America/New_York 时区。
春季夏令时更改发生在 2007-03-11T07:00:00Z,因此任何观看时区感知时钟的人都会看到:
您已经告诉SimpleDateFormat严格处理输入,然后给它一个不存在的日期/时间,所以它失败是合理的。
重要的是,无论您想如何处理这个问题,我都强烈鼓励您放弃旧的Date//类型,并改用Calendar它。DateFormatjava.time
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |