Example usage for org.joda.time DateTimeFieldType weekyear

List of usage examples for org.joda.time DateTimeFieldType weekyear

Introduction

In this page you can find the example usage for org.joda.time DateTimeFieldType weekyear.

Prototype

public static DateTimeFieldType weekyear() 

Source Link

Document

Get the year of a week based year field type.

Usage

From source file:org.codelibs.elasticsearch.common.joda.StrictISODateTimeFormat.java

License:Apache License

/**
 * Returns a formatter that outputs only those fields specified.
 * <p>/*from   w ww  .  j  a v  a 2 s  .  c o  m*/
 * This method examines the fields provided and returns an ISO-style
 * formatter that best fits. This can be useful for outputting
 * less-common ISO styles, such as YearMonth (YYYY-MM) or MonthDay (--MM-DD).
 * <p>
 * The list provided may have overlapping fields, such as dayOfWeek and
 * dayOfMonth. In this case, the style is chosen based on the following
 * list, thus in the example, the calendar style is chosen as dayOfMonth
 * is higher in priority than dayOfWeek:
 * <ul>
 * <li>monthOfYear - calendar date style
 * <li>dayOfYear - ordinal date style
 * <li>weekOfWeekYear - week date style
 * <li>dayOfMonth - calendar date style
 * <li>dayOfWeek - week date style
 * <li>year
 * <li>weekyear
 * </ul>
 * The supported formats are:
 * <pre>
 * Extended      Basic       Fields
 * 2005-03-25    20050325    year/monthOfYear/dayOfMonth
 * 2005-03       2005-03     year/monthOfYear
 * 2005--25      2005--25    year/dayOfMonth *
 * 2005          2005        year
 * --03-25       --0325      monthOfYear/dayOfMonth
 * --03          --03        monthOfYear
 * ---03         ---03       dayOfMonth
 * 2005-084      2005084     year/dayOfYear
 * -084          -084        dayOfYear
 * 2005-W12-5    2005W125    weekyear/weekOfWeekyear/dayOfWeek
 * 2005-W-5      2005W-5     weekyear/dayOfWeek *
 * 2005-W12      2005W12     weekyear/weekOfWeekyear
 * -W12-5        -W125       weekOfWeekyear/dayOfWeek
 * -W12          -W12        weekOfWeekyear
 * -W-5          -W-5        dayOfWeek
 * 10:20:30.040  102030.040  hour/minute/second/milli
 * 10:20:30      102030      hour/minute/second
 * 10:20         1020        hour/minute
 * 10            10          hour
 * -20:30.040    -2030.040   minute/second/milli
 * -20:30        -2030       minute/second
 * -20           -20         minute
 * --30.040      --30.040    second/milli
 * --30          --30        second
 * ---.040       ---.040     milli *
 * 10-30.040     10-30.040   hour/second/milli *
 * 10:20-.040    1020-.040   hour/minute/milli *
 * 10-30         10-30       hour/second *
 * 10--.040      10--.040    hour/milli *
 * -20-.040      -20-.040    minute/milli *
 *   plus datetime formats like {date}T{time}
 * </pre>
 * * indiates that this is not an official ISO format and can be excluded
 * by passing in <code>strictISO</code> as <code>true</code>.
 * <p>
 * This method can side effect the input collection of fields.
 * If the input collection is modifiable, then each field that was added to
 * the formatter will be removed from the collection, including any duplicates.
 * If the input collection is unmodifiable then no side effect occurs.
 * <p>
 * This side effect processing is useful if you need to know whether all
 * the fields were converted into the formatter or not. To achieve this,
 * pass in a modifiable list, and check that it is empty on exit.
 *
 * @param fields  the fields to get a formatter for, not null,
 *  updated by the method call unless unmodifiable,
 *  removing those fields built in the formatter
 * @param extended  true to use the extended format (with separators)
 * @param strictISO  true to stick exactly to ISO8601, false to include additional formats
 * @return a suitable formatter
 * @throws IllegalArgumentException if there is no format for the fields
 * @since 1.1
 */
public static DateTimeFormatter forFields(Collection<DateTimeFieldType> fields, boolean extended,
        boolean strictISO) {

    if (fields == null || fields.size() == 0) {
        throw new IllegalArgumentException("The fields must not be null or empty");
    }
    Set<DateTimeFieldType> workingFields = new HashSet<>(fields);
    int inputSize = workingFields.size();
    boolean reducedPrec = false;
    DateTimeFormatterBuilder bld = new DateTimeFormatterBuilder();
    // date
    if (workingFields.contains(DateTimeFieldType.monthOfYear())) {
        reducedPrec = dateByMonth(bld, workingFields, extended, strictISO);
    } else if (workingFields.contains(DateTimeFieldType.dayOfYear())) {
        reducedPrec = dateByOrdinal(bld, workingFields, extended);
    } else if (workingFields.contains(DateTimeFieldType.weekOfWeekyear())) {
        reducedPrec = dateByWeek(bld, workingFields, extended, strictISO);
    } else if (workingFields.contains(DateTimeFieldType.dayOfMonth())) {
        reducedPrec = dateByMonth(bld, workingFields, extended, strictISO);
    } else if (workingFields.contains(DateTimeFieldType.dayOfWeek())) {
        reducedPrec = dateByWeek(bld, workingFields, extended, strictISO);
    } else if (workingFields.remove(DateTimeFieldType.year())) {
        bld.append(Constants.ye);
        reducedPrec = true;
    } else if (workingFields.remove(DateTimeFieldType.weekyear())) {
        bld.append(Constants.we);
        reducedPrec = true;
    }
    boolean datePresent = (workingFields.size() < inputSize);

    // time
    time(bld, workingFields, extended, strictISO, reducedPrec, datePresent);

    // result
    if (bld.canBuildFormatter() == false) {
        throw new IllegalArgumentException("No valid format for fields: " + fields);
    }

    // side effect the input collection to indicate the processed fields
    // handling unmodifiable collections with no side effect
    try {
        fields.retainAll(workingFields);
    } catch (UnsupportedOperationException ex) {
        // ignore, so we can handle unmodifiable collections
    }
    return bld.toFormatter();
}

From source file:org.codelibs.elasticsearch.common.joda.StrictISODateTimeFormat.java

License:Apache License

/**
 * Creates a date using the calendar date format.
 * Specification reference: 5.2.3./*from  w  w w. ja  v a2s  .c  om*/
 *
 * @param bld  the builder
 * @param fields  the fields
 * @param extended  true to use extended format
 * @param strictISO  true to only allow ISO formats
 * @since 1.1
 */
private static boolean dateByWeek(DateTimeFormatterBuilder bld, Collection<DateTimeFieldType> fields,
        boolean extended, boolean strictISO) {

    boolean reducedPrec = false;
    if (fields.remove(DateTimeFieldType.weekyear())) {
        bld.append(Constants.we);
        if (fields.remove(DateTimeFieldType.weekOfWeekyear())) {
            appendSeparator(bld, extended);
            bld.appendLiteral('W');
            bld.appendWeekOfWeekyear(2);
            if (fields.remove(DateTimeFieldType.dayOfWeek())) {
                // YYYY-WWW-D/YYYYWWWD
                appendSeparator(bld, extended);
                bld.appendDayOfWeek(1);
            } else {
                // YYYY-WWW/YYYY-WWW
                reducedPrec = true;
            }
        } else {
            if (fields.remove(DateTimeFieldType.dayOfWeek())) {
                // YYYY-W-D/YYYYW-D (non-iso)
                checkNotStrictISO(fields, strictISO);
                appendSeparator(bld, extended);
                bld.appendLiteral('W');
                bld.appendLiteral('-');
                bld.appendDayOfWeek(1);
            } else {
                // YYYY/YYYY
                reducedPrec = true;
            }
        }

    } else if (fields.remove(DateTimeFieldType.weekOfWeekyear())) {
        bld.appendLiteral('-');
        bld.appendLiteral('W');
        bld.appendWeekOfWeekyear(2);
        if (fields.remove(DateTimeFieldType.dayOfWeek())) {
            // -WWW-D/-WWWD
            appendSeparator(bld, extended);
            bld.appendDayOfWeek(1);
        } else {
            // -WWW/-WWW
            reducedPrec = true;
        }
    } else if (fields.remove(DateTimeFieldType.dayOfWeek())) {
        // -W-D/-W-D
        bld.appendLiteral('-');
        bld.appendLiteral('W');
        bld.appendLiteral('-');
        bld.appendDayOfWeek(1);
    }
    return reducedPrec;
}

From source file:org.datavec.api.util.jackson.DateTimeFieldTypeDeserializer.java

License:Apache License

private static Map<String, DateTimeFieldType> getMap() {
    Map<String, DateTimeFieldType> ret = new HashMap<>();
    ret.put(DateTimeFieldType.centuryOfEra().getName(), DateTimeFieldType.centuryOfEra());
    ret.put(DateTimeFieldType.clockhourOfDay().getName(), DateTimeFieldType.clockhourOfDay());
    ret.put(DateTimeFieldType.clockhourOfHalfday().getName(), DateTimeFieldType.clockhourOfHalfday());
    ret.put(DateTimeFieldType.dayOfMonth().getName(), DateTimeFieldType.dayOfMonth());
    ret.put(DateTimeFieldType.dayOfWeek().getName(), DateTimeFieldType.dayOfWeek());
    ret.put(DateTimeFieldType.dayOfYear().getName(), DateTimeFieldType.dayOfYear());
    ret.put(DateTimeFieldType.era().getName(), DateTimeFieldType.era());
    ret.put(DateTimeFieldType.halfdayOfDay().getName(), DateTimeFieldType.halfdayOfDay());
    ret.put(DateTimeFieldType.hourOfDay().getName(), DateTimeFieldType.hourOfDay());
    ret.put(DateTimeFieldType.hourOfHalfday().getName(), DateTimeFieldType.hourOfHalfday());
    ret.put(DateTimeFieldType.millisOfDay().getName(), DateTimeFieldType.millisOfDay());
    ret.put(DateTimeFieldType.millisOfSecond().getName(), DateTimeFieldType.millisOfSecond());
    ret.put(DateTimeFieldType.minuteOfDay().getName(), DateTimeFieldType.minuteOfDay());
    ret.put(DateTimeFieldType.minuteOfHour().getName(), DateTimeFieldType.minuteOfHour());
    ret.put(DateTimeFieldType.secondOfDay().getName(), DateTimeFieldType.secondOfDay());
    ret.put(DateTimeFieldType.secondOfMinute().getName(), DateTimeFieldType.secondOfMinute());
    ret.put(DateTimeFieldType.weekOfWeekyear().getName(), DateTimeFieldType.weekOfWeekyear());
    ret.put(DateTimeFieldType.weekyear().getName(), DateTimeFieldType.weekyear());
    ret.put(DateTimeFieldType.weekyearOfCentury().getName(), DateTimeFieldType.weekyearOfCentury());
    ret.put(DateTimeFieldType.year().getName(), DateTimeFieldType.year());
    ret.put(DateTimeFieldType.yearOfCentury().getName(), DateTimeFieldType.yearOfCentury());
    ret.put(DateTimeFieldType.yearOfEra().getName(), DateTimeFieldType.yearOfEra());

    return ret;/*from  w  w w.  j  a va2 s.co m*/
}

From source file:TVShowTimelineMaker.timeConstraints.FieldChangeConstraint.java

public static List<DateTimeFieldType> lowerFields(DateTimeFieldType inDateTimeFieldType) {
    List<DateTimeFieldType> rValues = new java.util.ArrayList<>();
    //temporyly add the input to the collection so all are treated the same
    rValues.add(inDateTimeFieldType);/* w  w  w  . j  ava 2  s .  c o  m*/
    if (rValues.contains(DateTimeFieldType.era())) {
        rValues.add(DateTimeFieldType.centuryOfEra());
        //rValues.add(DateTimeFieldType.yearOfEra());
    }
    if (rValues.contains(DateTimeFieldType.centuryOfEra())) {
        //rValues.add(DateTimeFieldType.weekyearOfCentury());
        rValues.add(DateTimeFieldType.yearOfCentury());
    }
    if ((rValues.contains(DateTimeFieldType.year())) || (rValues.contains(DateTimeFieldType.yearOfCentury()))
            || (rValues.contains(DateTimeFieldType.yearOfEra()))) {
        rValues.add(DateTimeFieldType.dayOfYear());
        //rValues.add(DateTimeFieldType.monthOfYear());
    }
    if ((rValues.contains(DateTimeFieldType.weekyear()))
            || (rValues.contains(DateTimeFieldType.weekyearOfCentury()))) {
        rValues.add(DateTimeFieldType.weekOfWeekyear());
    }
    if (rValues.contains(DateTimeFieldType.monthOfYear())) {
        rValues.add(DateTimeFieldType.dayOfMonth());
    }
    if (rValues.contains(DateTimeFieldType.weekOfWeekyear())) {
        rValues.add(DateTimeFieldType.dayOfWeek());
    }
    //currently we only have a day worth of accturecy
    /*if ((rValues.contains(DateTimeFieldType.dayOfMonth())) || (rValues.contains(DateTimeFieldType.dayOfWeek())) || (rValues.contains(DateTimeFieldType.dayOfYear()))){
    //rValues.add(DateTimeFieldType.clockhourOfDay());
    //rValues.add(DateTimeFieldType.halfdayOfDay());
    rValues.add(DateTimeFieldType.hourOfDay());
    //rValues.add(DateTimeFieldType.millisOfDay());
    //rValues.add(DateTimeFieldType.minuteOfDay());
    //rValues.add(DateTimeFieldType.secondOfDay());
    }
    if (rValues.contains(DateTimeFieldType.halfdayOfDay())){
    //rValues.add(DateTimeFieldType.clockhourOfHalfday());
    rValues.add(DateTimeFieldType.hourOfHalfday());
    }
    if ((rValues.contains(DateTimeFieldType.hourOfDay())) || (rValues.contains(DateTimeFieldType.hourOfHalfday()))){
    rValues.add(DateTimeFieldType.minuteOfHour());
    }
    if ((rValues.contains(DateTimeFieldType.minuteOfDay())) || (rValues.contains(DateTimeFieldType.minuteOfHour()))){
    rValues.add(DateTimeFieldType.secondOfMinute());
    }
    if ((rValues.contains(DateTimeFieldType.secondOfDay())) || (rValues.contains(DateTimeFieldType.secondOfMinute()))){
    rValues.add(DateTimeFieldType.millisOfSecond());
    }*/

    //remove input from the collection
    rValues.remove(inDateTimeFieldType);
    return rValues;
}

From source file:TVShowTimelineMaker.util.JodaTimeUtil.java

private void init() {
    // <editor-fold defaultstate="collapsed" desc="StandardDateTimeFieldTypeMap setup">
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.centuryOfEra().getName(),
            DateTimeFieldType.centuryOfEra());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.clockhourOfDay().getName(),
            DateTimeFieldType.clockhourOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.clockhourOfHalfday().getName(),
            DateTimeFieldType.clockhourOfHalfday());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.dayOfMonth().getName(),
            DateTimeFieldType.dayOfMonth());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.dayOfWeek().getName(),
            DateTimeFieldType.dayOfWeek());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.dayOfYear().getName(),
            DateTimeFieldType.dayOfYear());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.era().getName(), DateTimeFieldType.era());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.halfdayOfDay().getName(),
            DateTimeFieldType.halfdayOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.hourOfDay().getName(),
            DateTimeFieldType.hourOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.hourOfHalfday().getName(),
            DateTimeFieldType.hourOfHalfday());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.millisOfDay().getName(),
            DateTimeFieldType.millisOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.millisOfSecond().getName(),
            DateTimeFieldType.millisOfSecond());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.minuteOfDay().getName(),
            DateTimeFieldType.minuteOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.minuteOfHour().getName(),
            DateTimeFieldType.minuteOfHour());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.monthOfYear().getName(),
            DateTimeFieldType.monthOfYear());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.secondOfDay().getName(),
            DateTimeFieldType.secondOfDay());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.secondOfMinute().getName(),
            DateTimeFieldType.secondOfMinute());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.weekOfWeekyear().getName(),
            DateTimeFieldType.weekOfWeekyear());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.weekyear().getName(), DateTimeFieldType.weekyear());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.weekyearOfCentury().getName(),
            DateTimeFieldType.weekyearOfCentury());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.year().getName(), DateTimeFieldType.year());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.yearOfCentury().getName(),
            DateTimeFieldType.yearOfCentury());
    this.StandardDateTimeFieldTypeMap.put(DateTimeFieldType.yearOfEra().getName(),
            DateTimeFieldType.yearOfEra());
    // </editor-fold>
    // <editor-fold defaultstate="collapsed" desc="ChronologyMap setup">
    this.ChronologybidiMap.put("BuddhistChronology", org.joda.time.chrono.BuddhistChronology.class);
    this.ChronologybidiMap.put("CopticChronology", org.joda.time.chrono.CopticChronology.class);
    this.ChronologybidiMap.put("EthiopicChronology", org.joda.time.chrono.EthiopicChronology.class);
    this.ChronologybidiMap.put("GJChronology", org.joda.time.chrono.GJChronology.class);
    this.ChronologybidiMap.put("GregorianChronology", org.joda.time.chrono.GregorianChronology.class);
    this.ChronologybidiMap.put("ISOChronology", org.joda.time.chrono.ISOChronology.class);
    this.ChronologybidiMap.put("IslamicChronology", org.joda.time.chrono.IslamicChronology.class);
    this.ChronologybidiMap.put("JulianChronology", org.joda.time.chrono.JulianChronology.class);

    this.ChronologyInstanceMap.put("BuddhistChronology", org.joda.time.chrono.BuddhistChronology.getInstance());
    this.ChronologyInstanceMap.put("CopticChronology", org.joda.time.chrono.CopticChronology.getInstance());
    this.ChronologyInstanceMap.put("EthiopicChronology", org.joda.time.chrono.EthiopicChronology.getInstance());
    this.ChronologyInstanceMap.put("GJChronology", org.joda.time.chrono.GJChronology.getInstance());
    this.ChronologyInstanceMap.put("GregorianChronology",
            org.joda.time.chrono.GregorianChronology.getInstance());
    this.ChronologyInstanceMap.put("ISOChronology", org.joda.time.chrono.ISOChronology.getInstance());
    this.ChronologyInstanceMap.put("IslamicChronology", org.joda.time.chrono.IslamicChronology.getInstance());
    this.ChronologyInstanceMap.put("JulianChronology", org.joda.time.chrono.JulianChronology.getInstance());
    // </editor-fold>
}