Example usage for org.joda.time.format PeriodFormatter PeriodFormatter

List of usage examples for org.joda.time.format PeriodFormatter PeriodFormatter

Introduction

In this page you can find the example usage for org.joda.time.format PeriodFormatter PeriodFormatter.

Prototype

public PeriodFormatter(PeriodPrinter printer, PeriodParser parser) 

Source Link

Document

Creates a new formatter, however you will normally use the factory or the builder.

Usage

From source file:com.facebook.presto.util.DateTimeUtils.java

License:Apache License

private static PeriodFormatter cretePeriodFormatter(IntervalField startField, IntervalField endField) {
    if (endField == null) {
        endField = startField;//from ww  w.  j  a  va2s  .  co  m
    }

    List<PeriodParser> parsers = new ArrayList<>();

    PeriodFormatterBuilder builder = new PeriodFormatterBuilder();
    //CHECKSTYLE.OFF
    switch (startField) {
    case YEAR:
        builder.appendYears();
        parsers.add(builder.toParser());
        if (endField == IntervalField.YEAR) {
            break;
        }
        builder.appendLiteral("-");
    case MONTH:
        builder.appendMonths();
        parsers.add(builder.toParser());
        if (endField != IntervalField.MONTH) {
            throw new IllegalArgumentException("Invalid interval qualifier: " + startField + " to " + endField);
        }
        break;

    case DAY:
        builder.appendDays();
        parsers.add(builder.toParser());
        if (endField == IntervalField.DAY) {
            break;
        }
        builder.appendLiteral(" ");

    case HOUR:
        builder.appendHours();
        parsers.add(builder.toParser());
        if (endField == IntervalField.HOUR) {
            break;
        }
        builder.appendLiteral(":");

    case MINUTE:
        builder.appendMinutes();
        parsers.add(builder.toParser());
        if (endField == IntervalField.MINUTE) {
            break;
        }
        builder.appendLiteral(":");

    case SECOND:
        builder.appendSecondsWithOptionalMillis();
        parsers.add(builder.toParser());
    }
    //CHECKSTYLE.ON

    return new PeriodFormatter(builder.toPrinter(), new OrderedPeriodParser(parsers));
}

From source file:io.prestosql.util.DateTimeUtils.java

License:Apache License

private static PeriodFormatter cretePeriodFormatter(IntervalField startField, IntervalField endField) {
    if (endField == null) {
        endField = startField;//  w w w .  j  a  va2s  .  co m
    }

    List<PeriodParser> parsers = new ArrayList<>();

    PeriodFormatterBuilder builder = new PeriodFormatterBuilder();
    switch (startField) {
    case YEAR:
        builder.appendYears();
        parsers.add(builder.toParser());
        if (endField == IntervalField.YEAR) {
            break;
        }
        builder.appendLiteral("-");
        // fall through

    case MONTH:
        builder.appendMonths();
        parsers.add(builder.toParser());
        if (endField != IntervalField.MONTH) {
            throw new IllegalArgumentException("Invalid interval qualifier: " + startField + " to " + endField);
        }
        break;

    case DAY:
        builder.appendDays();
        parsers.add(builder.toParser());
        if (endField == IntervalField.DAY) {
            break;
        }
        builder.appendLiteral(" ");
        // fall through

    case HOUR:
        builder.appendHours();
        parsers.add(builder.toParser());
        if (endField == IntervalField.HOUR) {
            break;
        }
        builder.appendLiteral(":");
        // fall through

    case MINUTE:
        builder.appendMinutes();
        parsers.add(builder.toParser());
        if (endField == IntervalField.MINUTE) {
            break;
        }
        builder.appendLiteral(":");
        // fall through

    case SECOND:
        builder.appendSecondsWithOptionalMillis();
        parsers.add(builder.toParser());
        break;
    }

    return new PeriodFormatter(builder.toPrinter(), new OrderedPeriodParser(parsers));
}