【问题标题】:joda date DateTimeFormatterBuilder append does not workjoda date DateTimeFormatterBuilder 附加不起作用
【发布时间】:2014-05-22 16:43:49
【问题描述】:

代码优先。

@Test
public void testDateFormat()
{
    // this is ok
    DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime("2014-5-15 20:00:00");
    DateTimeFormat.forPattern("yyyy-MM-dd").parseDateTime("2014-5-15");

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
            .appendPattern("yyyy-MM-dd HH:mm:ss")
            .appendPattern("yyyy-MM-dd")
            // ues these way is also failed.
            //.append(DateTimeFormat.forPattern("xxxx"))
            //.append(DateTimeFormat.forPattern("xxxx").getParser())
            .toFormatter();

    try
    {
        formatter.parseLocalDateTime("2014-5-15 20:00:00");
    }catch (Exception ignored){System.out.println("Failed A");}
    try
    {
        formatter.parseLocalDateTime("2014-05-15 20:00:00");
    }catch (Exception ignored){System.out.println("Failed B");}
    try
    {
        formatter.parseLocalDateTime("2014-5-15");
    }catch (Exception ignored){System.out.println("Failed C");}
    try
    {
        formatter.parseLocalDateTime("2014-05-15");
    }catch (Exception ignored){System.out.println("Failed D");}
}

输出

Failed A:Invalid format: "2014-5-15 20:00:00" is too short
Failed B:Invalid format: "2014-05-15 20:00:00" is too short
Failed C:Invalid format: "2014-5-15" is too short
Failed D:Invalid format: "2014-05-15" is too short

一切都失败了。难道我做错了什么?看起来应该没问题。

【问题讨论】:

  • 2014-5-15 20:00:00 如何适应 yyyy-MM-dd HH:mm:ssyyyy-MM-dd 或您为此提供的任何其他示例?
  • 追加全部连接?不是格式化程序数组?
  • 不,追加是连续的。不是,“我有一堆格式化程序,都试一试,直到一个通过”……你需要自己写;)
  • 谢谢,我自己写的。 :

标签: java jodatime date-format


【解决方案1】:

找到this

这样做的正确方法。

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
            .append(null,
                    new DateTimeParser[]{DateTimeFormat.forPattern("yyyy-MM-dd").getParser(),
                            DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").getParser()})
            .toFormatter();

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2016-07-11
    • 2016-02-26
    • 1970-01-01
    • 2014-02-06
    • 2013-09-29
    • 2017-02-25
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多