【问题标题】:DateFormat from ''yyyy-MM-dd" to "dd-MM" using Joda-TimeDateFormat 从 ''yyyy-MM-dd" 到 "dd-MM" 使用 Joda-Time
【发布时间】:2015-02-02 14:29:53
【问题描述】:

我有以下代码:

DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM");
LocalDate weekMon = new LocalDate().withWeekOfWeekyear(thisWeek).withDayOfWeek(DateTimeConstants.MONDAY);
System.out.println(weekMon.toString());
LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());

并且输出正确打印日期:2015-02-02。我正在尝试将其转换为欧洲格式并忽略年份为“dd-MM”->“02-02”但行:

LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());

不断抛出以下异常:

java.lang.IllegalArgumentException: Invalid format: "2015-02-02" is malformed at "5-02-02"

在这种情况下,队形有什么问题?

【问题讨论】:

  • parseLocalDate 不会像您认为的那样做。再次阅读文档。

标签: java date datetime jodatime


【解决方案1】:

您可能需要的是print,而不是parse

换句话说:

String dateStr = dtf.print(weekMon);

注意使用此代码:

LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());

您正在尝试使用接受"dd/MM" 格式字符串的格式化程序解析"yyyy-MM-dd" 格式的字符串。因此例外......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 2014-04-30
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多