当前位置: 首页 > 知识库问答 >
问题:

SimpleDataFormat返回日期字符串无效的奇怪日期

宋朝
2023-03-14

我尝试解析时间格式化字符串,现在当我解析字符串“2014-01-07 95:25:37”时,它返回一个日期,而不是抛出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个答案

王楚青
2023-03-14

使用setLenient验证输入日期String

ft.setLenient(false);
简宏义
2023-03-14

问题的原因是时间:95:25:37。Java试图将这段额外的时间添加到您的工作日中,因此您将获得额外的3天。

要防止java这样做,可以使用以下方法:

 ft.setLenient(false);
 类似资料:
  • 我正面临一个前所未有的奇怪问题。我有一个以毫秒为单位的日期,希望将其显示为可读的日期。这是我的代码: 如你所见,我只想创建一个显示时间跨度的字符串。当我调试代码时,日期对象包含正确的值,而

  • 问题内容: 如何将字符串日期格式转换为日期,我的日期字符串格式为 接下来,我没有运气尝试。 以上所有语句都给出了解析错误。 问题答案: 请阅读的文档time.Parse: 该布局通过显示参考时间(定义为 2006年1月2日星期一15:04:05-0700 如果它是值,将被解释;它用作输入格式的示例。然后将对输入字符串进行相同的解释。 所以正确的格式是

  • 我有一个String日期,格式如下 我想将此字符串转换为以下格式的日期,以便在下面的Sqlite db查询中使用它 但是date是以下格式返回日期

  • 问题内容: 在我的程序中,我试图将日期转换为指定格式的字符串,然后再转换为日期。我需要日期为dd-MMM- yy格式。因此,我正在使用SimpleDateFormat将日期转换为dd-MMM-yy格式, 结果是我预期的,即12年5月23日,但是当我使用parse()将字符串转换回日期时,它将更改为IST 2012年5月23日星期三13:16:14。 有什么方法可以将字符串转换回日期而不更改格式?我

  • 在我的程序中,我试图将日期转换为字符串,转换为指定格式,然后转换回日期。我需要日期是dd-MMM-yy格式。因此,我使用SimpleDateFormat将日期转换为dd-MMM-yy格式, 结果与我预期的一样,即23-may-12,但当我使用parse()将字符串转换回日期时,它更改为Wed may23 13:16:14 IST 2012。 有什么方法可以在不改变格式的情况下将字符串转换回日期吗?

  • Edit:不幸的是,我需要以日期的形式获得结果,而不是字符串,所以我不能使用sdf.format(New Date().getTime()),因为它返回字符串。另外,我需要返回的日期是当前时间的日期,而不是来自静态字符串。我希望这能澄清