当我使用setLenient()时,SimpleDateFormat不解析带有日期的字符串

时间:2017-05-28 11:50:00

标签: java date simpledateformat parseexception

我不明白以下代码出了什么问题:

SimpleDateFormat formatter = new SimpleDateFormat("MM.dd.yy hh:mm:ss");
formatter.setLenient(false);
formatter.parse("04.29.2017 00:55:05");

当我尝试使用日期解析字符串时,我有一个java.text.ParseException。我的代码出了什么问题?

2 个答案:

答案 0 :(得分:2)

hh需要1到12的范围。如果你希望它与宽松关闭一起工作,可以将它改为HH(0到23)。

答案 1 :(得分:1)

您需要使用yyyy格式(2017年为yyyy)。

我还删除了formatter.setLenient(false);,因为这不是必需的。

像这样:

public class DateParse {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat("MM.dd.yyyy hh:mm:ss");
        Date myDate = formatter.parse("04.29.2017 00:55:05");

        System.out.println(myDate);
    }
}

输出:

  

2017年4月29日星期六00:55:05 BST 2017