SimpleDateFormat返回带有无效日期字符串的奇怪日期

时间:2014-02-25 15:35:16

标签: java date simpledateformat

我尝试解析时间格式化字符串,现在当我解析字符串“2014-01-07 95:25:37”时,它返回一个日期,而不是抛出ParseException。谁知道如何让它抛出ParseException。谢谢乔治。

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.print(  ft.parse("2014-01-07 95:25:37"));

输出:

Fri Jan 10 23:25:37 EST 2014

2 个答案:

答案 0 :(得分:3)

问题的原因是时间:95:25:37。 Java会尝试将这些额外的时间添加到您的日子,因此您将获得额外的3天。

为防止java这样做,您可以使用以下命令:

 ft.setLenient(false);

答案 1 :(得分:2)

使用setLenient验证输入日期String

ft.setLenient(false);