List of usage examples for org.joda.time DateTimeFieldType weekyear
public static DateTimeFieldType weekyear()
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> }