java - Java 1.7 中 SimpleDateFormat 的行为变化?

标签 java date datetime

考虑以下片段

public class Test1 {
    public static void main(String[] args) throws ParseException, java.text.ParseException {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        f.setLenient(false);
        String dateStr = "2008-01-23 00:00:00.0";
        Date date=f.parse(dateStr);
        System.out.println(date);

    }
}

这在 java 1.6 中工作正常并给出输出 Wed Jan 23 00:00:00 IST 2008

在 java 1.7 的情况下它给出异常

Exception in thread "main" java.text.ParseException: Unparseable date: "2008-01-23 00:00:00.0"
    at java.text.DateFormat.parse(DateFormat.java:357)

我认为 JAVA 1.7 的行为是正确的,因为 00:00:00.0 不属于 hh:mm:ss 格式(1-12 小时格式)

我的假设是否正确,1.6 有错误并在 1.7 中得到纠正?

最佳答案

是的,此行为已随 Java 7 发生变化。可以在 Oracle website 上找到错误修复文档。 .错误 ID 是 JDK-4396385。

关于java - Java 1.7 中 SimpleDateFormat 的行为变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726862/

相关文章:

apache-flex - 如何使用 ActionScript 获取特定日期的星期几的名称?

php - Google Calendar API 日期时间

php - 如何检查 'YYYY-MM-DD' 格式的日期和 PHP 中 'Unix Time stamp' 格式的日期?

java - 保存在另一个目录中 JAVA - 很简单的问题!

java - JLabel 没有出现

javascript - 如何在 jQuery UI Datepicker 中禁用下一个周末?

ruby-on-rails - 是否可以在 Rails 中的两个日期之间创建月份列表

java - Java如何保留/使用内存?

java - Spring MVC : print a table from database

java - 使用java从文件中读取日期