在Joda-Time解析自由日期/时间

时间:2012-02-16 09:52:21

标签: java parsing jodatime

是否可以创建一个可以解析的DateTimeParser

  • 指定时间的日期
  • 没有时间的日期(假设时间是开始的一天)
  • 没有约会的时间(假设今天是今天)

或者我需要有三个单独的解析器,并尝试解析每个解析器?

换句话说,是否可以在解析器中定义可选字段?

1 个答案:

答案 0 :(得分:3)

org.joda.time.format.ISODateTimeFormat有一个静态方法dateOptionalTimeParser(),它使用下面的代码,基于具有DateTimeFomatterBuilder方法的appendOptional类 - 您可能会适应符合要求的方法......链接:http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormatterBuilder.html

public static DateTimeFormatter dateOptionalTimeParser() {
    if (dotp == null) {
        DateTimeParser timeOrOffset = new DateTimeFormatterBuilder()
            .appendLiteral('T')
            .appendOptional(timeElementParser().getParser())
            .appendOptional(offsetElement().getParser())
            .toParser();
        dotp = new DateTimeFormatterBuilder()
            .append(dateElementParser())
            .appendOptional(timeOrOffset)
            .toFormatter();
    }
    return dotp;
}