【问题标题】:Joda Time IllegalArgumentExceptionJoda Time IllegalArgumentException
【发布时间】:2016-03-11 10:40:17
【问题描述】:

我使用 Joda 时间框架。在我的功能中,我这样做:

...
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(DateTime.now().toString());
...

我有这个错误:

java.lang.IllegalArgumentException:无效格式: “2016-03-11T11:38:22.666+01:00”格式错误 “16-03-11T11:38:22.666+01:00”

怎么了..?

更新:

我使用@user2004685 代码:

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime newTime = formatter.parseDateTime(new Date().toString());
Date startDate =  newTime.toDate();
newTime = formatter.parseDateTime(DateTime.now().plusMonths(6).toString());
Date endDate = newTime.toDate();

我有这个新错误:

java.lang.IllegalArgumentException:无效格式:“Fri Mar 11 2016 年中欧时间 12:09:36"

【问题讨论】:

  • @user2004685 当我使用yyyy-MM-dd HH:mm:ss.SSS 时出现此错误:java.lang.IllegalArgumentException: Invalid format: "2016-03-11T11:44:08.187+01:00" is malformed at "T11:44:08.187+01:00"
  • 尝试使用EEE MMM dd HH:mm:ss zzzz yyyy 而不是dd/MM/yyyy HH:mm:ss
  • 尊敬的先生们,如果您投反对票,请至少给我一个小评论,如何改进我的回答

标签: java jodatime


【解决方案1】:

你应该试试这个:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

【讨论】:

    【解决方案2】:

    如果你想解析它,你的字符串应该是相同的格式。现在您正在创建的字符串过期,它将采用EEE MMM dd HH:mm:ss zzzz yyyy 格式,但您使用的是不同的格式,即dd/MM/yyyy HH:mm:ss

    这里是sn-p的代码:

    DateTimeFormatter out = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss zzzz yyyy");
    DateTime newTime = out.parseDateTime(new Date().toString());
    

    如果您想将此日期转换为dd/MM/yyyy HH:mm:ss 格式,那么您可以进一步执行以下操作:

    DateTimeFormatter in = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
    System.out.println(in.print(newTime));
    

    【讨论】:

    • 有一个错误The method parseDateTime(String) in the type DateTimeFormatter is not applicable for the arguments (Date)在你的行DateTime newTime = out.parseDateTime(new Date());
    • @Mercer 抱歉,它应该是 new Date().toString() 而不仅仅是 new Date()。更新了解决方案。
    • 您忘记更改图案了。
    • 我不明白我忘记了什么..?
    • 你为什么使用dd/MM/yyyy HH:mm:ss而不是EEE MMM dd HH:mm:ss zzzz yyyy作为模式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2011-07-03
    • 2020-11-13
    • 1970-01-01
    • 2016-12-26
    • 2012-07-22
    • 2012-02-16
    相关资源
    最近更新 更多