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

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

Introduction

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

Prototype

public static DateTimeFormatter time() 

Source Link

Document

Returns a formatter for a two digit hour of day, two digit minute of hour, two digit second of minute, three digit fraction of second, and time zone offset (HH:mm:ss.SSSZZ).

Usage

From source file:com.marand.thinkmed.medications.business.impl.MedicationsEhrUtils.java

License:Open Source License

public static OrderActivity setMedicationTiming(final OrderActivity orderActivity,
        final DosingFrequencyDto dosingFrequency, final Integer dosingDaysFrequency,
        final List<String> daysOfWeek, final DateTime start, final DateTime stop,
        final HourMinuteDto administrationTime, final DateTime administrationDate, final Boolean whenNeeded,
        final List<String> startCriterions, final Integer maxDailyFrequency) {
    final OrderActivity.MedicationTimingCluster medicationTiming = new OrderActivity.MedicationTimingCluster();
    orderActivity.setMedicationTiming(medicationTiming);
    final OrderActivity.MedicationTimingCluster.TimingCluster timing = new OrderActivity.MedicationTimingCluster.TimingCluster();
    medicationTiming.setTiming(timing);/*from   w ww. j  av  a2s  .  co  m*/

    if (maxDailyFrequency != null) {
        final OrderActivity.MaximumDoseCluster maximumDoseCluster = new OrderActivity.MaximumDoseCluster();
        maximumDoseCluster.setAllowedPeriod(DataValueUtils.getDuration(0, 0, 1, 0, 0, 0));
        final MedicationAmountCluster medicationAmountCluster = new MedicationAmountCluster();
        medicationAmountCluster.setAmount(DataValueUtils.getQuantity(maxDailyFrequency, ""));
        maximumDoseCluster.setMedicationAmount(medicationAmountCluster);
        orderActivity.getMaximumDose().add(maximumDoseCluster);
    }
    if (dosingFrequency != null) {
        if (dosingFrequency.getType() == DosingFrequencyTypeEnum.BETWEEN_DOSES) {
            timing.setInterval(DataValueUtils.getDuration(0, 0, 0, dosingFrequency.getValue(), 0, 0));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.DAILY_COUNT) {
            final DvCount count = new DvCount();
            count.setMagnitude(dosingFrequency.getValue());
            timing.setDailyCount(count);
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.MORNING) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.MORNING)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.EVENING) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.EVENING)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.NOON) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.NOON)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.ONCE_THEN_EX) {
            final DvCount numberOfAdministrations = new DvCount();
            numberOfAdministrations.setMagnitude(1L);
            medicationTiming.setNumberOfAdministrations(numberOfAdministrations);
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.ONCE_THEN_EX)));
        }
    }

    if (dosingDaysFrequency != null) {
        if (dosingFrequency != null && dosingFrequency.getType() == DosingFrequencyTypeEnum.BETWEEN_DOSES) {
            throw new IllegalArgumentException("Not a valid dosingFrequency");
        }
        timing.setInterval(DataValueUtils.getDuration(0, 0, dosingDaysFrequency, 0, 0, 0));
    }

    medicationTiming.setStartDate(DataValueUtils.getDateTime(start));
    if (stop != null) {
        medicationTiming.setStopDate(DataValueUtils.getDateTime(stop));
    }

    if (daysOfWeek != null && !daysOfWeek.isEmpty()) {
        final List<DvCodedText> ehrDaysOfWeek = new ArrayList<>();
        for (final String dayOfWeek : daysOfWeek) {
            ehrDaysOfWeek.add(DataValueUtils.getCodedText(DayOfWeek.valueOf(dayOfWeek)));
        }
        timing.setDayOfWeek(ehrDaysOfWeek);
    }

    final List<DvTime> dvTimes = new ArrayList<>();
    if (administrationTime != null) {
        final DvTime dvTime = new DvTime();
        final String isoTime = ISODateTimeFormat.time()
                .print(new DateTime(2000, 1, 1, administrationTime.getHour(), administrationTime.getMinute()));
        dvTime.setValue(isoTime);
        dvTimes.add(dvTime);
    }
    timing.setTime(dvTimes);

    if (administrationDate != null) {
        final DvDate dvDate = new DvDate();
        dvDate.setValue(ISODateTimeFormat.date().print(administrationDate));
        final List<DvDate> dvDates = new ArrayList<>();
        dvDates.add(dvDate);
        timing.setDate(dvDates);
    }

    if (whenNeeded != null) {
        medicationTiming.setPRN(DataValueUtils.getBoolean(whenNeeded));
    }
    for (final String startCriterion : startCriterions) {
        if (startCriterion != null) {
            final MedicationStartCriterionEnum startConditionEnum = MedicationStartCriterionEnum
                    .valueOf(startCriterion);
            if (startCriterion != null) {
                final String startConditionEnumString = MedicationStartCriterionEnum
                        .getFullString(startConditionEnum);
                medicationTiming.getStartCriterion().add(
                        DataValueUtils.getLocalCodedText(startConditionEnumString, startConditionEnumString));
            } else {
                throw new IllegalArgumentException("Unknown start condition " + startCriterion);
            }
        }
    }

    return orderActivity;
}

From source file:com.marand.thinkmed.medications.business.util.MedicationsEhrUtils.java

License:Open Source License

public static OrderActivity setMedicationTiming(final OrderActivity orderActivity,
        final DosingFrequencyDto dosingFrequency, final Integer dosingDaysFrequency,
        final List<String> daysOfWeek, final DateTime start, final DateTime stop,
        final List<HourMinuteDto> administrationTimes, final DateTime administrationDate,
        final Boolean whenNeeded, final String startCriterion, final Integer maxDailyFrequency) {
    final OrderActivity.MedicationTimingCluster medicationTiming = new OrderActivity.MedicationTimingCluster();
    orderActivity.setMedicationTiming(medicationTiming);
    final OrderActivity.MedicationTimingCluster.TimingCluster timing = new OrderActivity.MedicationTimingCluster.TimingCluster();
    medicationTiming.setTiming(timing);/*  w ww  .  j  a  v  a2 s  . co  m*/

    if (maxDailyFrequency != null) {
        final OrderActivity.MaximumDoseCluster maximumDoseCluster = new OrderActivity.MaximumDoseCluster();
        maximumDoseCluster.setAllowedPeriod(DataValueUtils.getDuration(0, 0, 1, 0, 0, 0));
        final MedicationAmountCluster medicationAmountCluster = new MedicationAmountCluster();
        medicationAmountCluster.setAmount(DataValueUtils.getQuantity(maxDailyFrequency, ""));
        maximumDoseCluster.setMedicationAmount(medicationAmountCluster);
        orderActivity.getMaximumDose().add(maximumDoseCluster);
    }
    if (dosingFrequency != null) {
        if (dosingFrequency.getType() == DosingFrequencyTypeEnum.BETWEEN_DOSES) {
            timing.setInterval(DataValueUtils.getDuration(0, 0, 0, dosingFrequency.getValue(), 0, 0));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.DAILY_COUNT) {
            final DvCount count = new DvCount();
            count.setMagnitude(dosingFrequency.getValue());
            timing.setDailyCount(count);
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.MORNING) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.MORNING)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.EVENING) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.EVENING)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.NOON) {
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.NOON)));
        } else if (dosingFrequency.getType() == DosingFrequencyTypeEnum.ONCE_THEN_EX) {
            final DvCount numberOfAdministrations = new DvCount();
            numberOfAdministrations.setMagnitude(1L);
            medicationTiming.setNumberOfAdministrations(numberOfAdministrations);
            medicationTiming.setTimingDescription(DataValueUtils
                    .getText(DosingFrequencyTypeEnum.getFullString(DosingFrequencyTypeEnum.ONCE_THEN_EX)));
        }
    }

    if (dosingDaysFrequency != null) {
        timing.setInterval(DataValueUtils.getDuration(0, 0, dosingDaysFrequency, 0, 0, 0));
    }

    medicationTiming.setStartDate(DataValueUtils.getDateTime(start));
    if (stop != null) {
        medicationTiming.setStopDate(DataValueUtils.getDateTime(stop));
    }

    if (daysOfWeek != null && !daysOfWeek.isEmpty()) {
        final List<DvCodedText> ehrDaysOfWeek = new ArrayList<>();
        for (final String dayOfWeek : daysOfWeek) {
            ehrDaysOfWeek.add(DataValueUtils.getCodedText(DayOfWeek.valueOf(dayOfWeek)));
        }
        timing.setDayOfWeek(ehrDaysOfWeek);
    }

    final List<DvTime> dvTimes = new ArrayList<>();
    if (administrationTimes != null) {
        for (final HourMinuteDto administrationTime : administrationTimes) {
            final DvTime dvTime = new DvTime();
            final String isoTime = ISODateTimeFormat.time()
                    .print(administrationTime.combine(new DateTime(2000, 1, 1, 0, 0)));
            dvTime.setValue(isoTime);
            dvTimes.add(dvTime);
        }
    }

    timing.setTime(dvTimes);

    if (administrationDate != null) {
        final DvDate dvDate = new DvDate();
        dvDate.setValue(ISODateTimeFormat.date().print(administrationDate));
        final List<DvDate> dvDates = new ArrayList<>();
        dvDates.add(dvDate);
        timing.setDate(dvDates);
    }

    if (whenNeeded != null) {
        medicationTiming.setPRN(DataValueUtils.getBoolean(whenNeeded));
    }
    if (startCriterion != null) {
        final MedicationStartCriterionEnum startConditionEnum = MedicationStartCriterionEnum
                .valueOf(startCriterion);
        if (startConditionEnum != null) {
            final String startConditionEnumString = MedicationStartCriterionEnum
                    .getFullString(startConditionEnum);
            medicationTiming.getStartCriterion()
                    .add(DataValueUtils.getLocalCodedText(startConditionEnumString, startConditionEnumString));
        } else {
            throw new IllegalArgumentException("Unknown start condition " + startCriterion);
        }
    }

    return orderActivity;
}

From source file:com.thinkbiganalytics.util.JdbcCommon.java

License:Apache License

/**
 * Converts the specified SQL result set to a delimited text file written to the specified output stream.
 *
 * @param rs        the SQL result set/* w  ww  . j  a  va  2  s . c  o  m*/
 * @param outStream the output stream for the delimited text file
 * @param visitor   records position of the result set
 * @param delimiter the column delimiter for the delimited text file
 * @return the number of rows written
 * @throws SQLException if a SQL error occurs while reading the result set
 * @throws IOException  if an I/O error occurs while writing to the output stream
 */
public static long convertToDelimitedStream(final ResultSet rs, final OutputStream outStream,
        final RowVisitor visitor, String delimiter) throws SQLException, IOException {
    // avoid overflowing log with redundant messages
    int dateConversionWarning = 0;

    if (rs == null || rs.getMetaData() == null) {
        log.warn("Received empty resultset or no metadata.");
        return 0;
    }
    OutputStreamWriter writer = new OutputStreamWriter(outStream);
    final ResultSetMetaData meta = rs.getMetaData();
    final DelimiterEscaper escaper = new DelimiterEscaper(delimiter);

    // Write header
    final int nrOfColumns = meta.getColumnCount();
    StringBuffer sb = new StringBuffer();
    for (int i = 1; i <= nrOfColumns; i++) {
        String columnName = meta.getColumnName(i);
        sb.append(escaper.translate(columnName));
        if (i != nrOfColumns) {
            sb.append(delimiter);
        } else {
            sb.append("\n");
        }
    }
    writer.append(sb.toString());
    long nrOfRows = 0;
    while (rs.next()) {
        if (visitor != null) {
            visitor.visitRow(rs);
        }
        sb = new StringBuffer();
        nrOfRows++;
        for (int i = 1; i <= nrOfColumns; i++) {
            String val = null;

            int colType = meta.getColumnType(i);
            if (colType == Types.DATE || colType == Types.TIMESTAMP) {
                Timestamp sqlDate = null;
                try {
                    // Extract timestamp
                    sqlDate = extractSqlDate(rs, i);
                } catch (Exception e) {
                    // Still failed, maybe exotic date type
                    if (dateConversionWarning++ < 10) {
                        log.warn("{} is not convertible to timestamp or date",
                                rs.getMetaData().getColumnName(i));
                    }
                }

                if (visitor != null) {
                    visitor.visitColumn(rs.getMetaData().getColumnName(i), colType, sqlDate);
                }
                if (sqlDate != null) {
                    DateTimeFormatter formatter = ISODateTimeFormat.dateTime().withZoneUTC();
                    val = formatter.print(new DateTime(sqlDate.getTime()));
                }
            } else if (colType == Types.TIME) {
                Time time = rs.getTime(i);
                if (visitor != null) {
                    visitor.visitColumn(rs.getMetaData().getColumnName(i), colType, time);
                }
                if (time != null) {
                    DateTimeFormatter formatter = ISODateTimeFormat.time().withZoneUTC();
                    val = formatter.print(new DateTime(time.getTime()));
                }
            } else if (colType == Types.BLOB) {
                byte[] bytes = rs.getBytes(i);

                if (bytes != null)
                    val = rs.getBytes(i).toString();

                if (visitor != null) {
                    visitor.visitColumn(rs.getMetaData().getColumnName(i), colType, val);
                }
            } else {
                val = rs.getString(i);
                if (visitor != null) {
                    visitor.visitColumn(rs.getMetaData().getColumnName(i), colType, val);
                }
            }
            sb.append((val == null ? "" : escaper.translate(val)));
            if (i != nrOfColumns) {
                sb.append(delimiter);
            } else {
                sb.append("\n");
            }
        }
        writer.append(sb.toString());
    }
    writer.flush();
    return nrOfRows;
}

From source file:com.thinkbiganalytics.util.JdbcCommon.java

License:Apache License

public static long convertToAvroStream(final ResultSet rs, final OutputStream outStream,
        final RowVisitor visitor, final Schema schema) throws SQLException, IOException {
    int dateConversionWarning = 0;
    final GenericRecord rec = new GenericData.Record(schema);

    final DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<>(schema);
    try (final DataFileWriter<GenericRecord> dataFileWriter = new DataFileWriter<>(datumWriter)) {
        dataFileWriter.create(schema, outStream);

        final ResultSetMetaData meta = rs.getMetaData();
        final int nrOfColumns = meta.getColumnCount();
        long nrOfRows = 0;
        while (rs.next()) {
            if (visitor != null) {
                visitor.visitRow(rs);/*from   ww  w. j a  v  a2  s.  c om*/
            }
            for (int i = 1; i <= nrOfColumns; i++) {
                final int javaSqlType = meta.getColumnType(i);
                final Object value = rs.getObject(i);

                if (value == null) {
                    rec.put(i - 1, null);

                } else if (javaSqlType == BINARY || javaSqlType == VARBINARY || javaSqlType == LONGVARBINARY
                        || javaSqlType == ARRAY || javaSqlType == BLOB || javaSqlType == CLOB) {
                    // bytes requires little bit different handling
                    byte[] bytes = rs.getBytes(i);
                    ByteBuffer bb = ByteBuffer.wrap(bytes);
                    rec.put(i - 1, bb);

                } else if (value instanceof Byte) {
                    // tinyint(1) type is returned by JDBC driver as java.sql.Types.TINYINT
                    // But value is returned by JDBC as java.lang.Byte
                    // (at least H2 JDBC works this way)
                    // direct put to avro record results:
                    // org.apache.avro.AvroRuntimeException: Unknown datum type java.lang.Byte
                    rec.put(i - 1, ((Byte) value).intValue());

                } else if (value instanceof BigDecimal || value instanceof BigInteger) {
                    // Avro can't handle BigDecimal and BigInteger as numbers - it will throw an AvroRuntimeException such as: "Unknown datum type: java.math.BigDecimal: 38"
                    rec.put(i - 1, value.toString());

                } else if (value instanceof Number || value instanceof Boolean) {
                    rec.put(i - 1, value);

                } else if (value instanceof Date) {
                    final DateTimeFormatter formatter = ISODateTimeFormat.dateTime().withZoneUTC();
                    rec.put(i - 1, formatter.print(new DateTime(((Date) value).getTime())));

                } else if (value instanceof Time) {
                    final DateTimeFormatter formatter = ISODateTimeFormat.time().withZoneUTC();
                    rec.put(i - 1, formatter.print(new DateTime(((Time) value).getTime())));

                } else if (value instanceof Timestamp) {
                    final DateTimeFormatter formatter = ISODateTimeFormat.dateTime().withZoneUTC();
                    rec.put(i - 1, formatter.print(new DateTime(((Timestamp) value).getTime())));

                } else {
                    // The different types that we support are numbers (int, long, double, float),
                    // as well as boolean values and Strings. Since Avro doesn't provide
                    // timestamp types, we want to convert those to Strings. So we will cast anything other
                    // than numbers or booleans to strings by using the toString() method.
                    rec.put(i - 1, value.toString());
                }

                //notify the visitor
                if (javaSqlType == Types.DATE || javaSqlType == Types.TIMESTAMP) {
                    Timestamp sqlDate = null;
                    try {
                        // Extract timestamp
                        sqlDate = extractSqlDate(rs, i);

                    } catch (Exception e) {
                        if (dateConversionWarning++ < 10) {
                            log.warn("{} is not convertible to timestamp or date",
                                    rs.getMetaData().getColumnName(i));
                        }
                    }

                    if (visitor != null) {
                        visitor.visitColumn(rs.getMetaData().getColumnName(i), javaSqlType, sqlDate);
                    }
                } else if (javaSqlType == Types.TIME) {
                    Time time = rs.getTime(i);
                    if (visitor != null) {
                        visitor.visitColumn(rs.getMetaData().getColumnName(i), javaSqlType, time);
                    }
                } else {
                    if (visitor != null) {
                        visitor.visitColumn(rs.getMetaData().getColumnName(i), javaSqlType,
                                (value != null) ? value.toString() : null);
                    }
                }
            }
            dataFileWriter.append(rec);
            nrOfRows += 1;
        }

        return nrOfRows;
    }
}

From source file:com.tuplejump.stargate.Dates.java

License:Apache License

/**
 * Parses a joda based pattern, including some named ones (similar to the built in Joda ISO ones).
 *///w ww.  jav  a 2 s  . c o m
public static FormatDateTimeFormatter forPattern(String input, Locale locale) {
    if (StringUtils.isNotBlank(input)) {
        input = input.trim();
    }
    if (input == null || input.length() == 0) {
        throw new IllegalArgumentException("No date pattern provided");
    }

    DateTimeFormatter formatter;
    if ("basicDate".equals(input) || "basic_date".equals(input)) {
        formatter = ISODateTimeFormat.basicDate();
    } else if ("basicDateTime".equals(input) || "basic_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicDateTime();
    } else if ("basicDateTimeNoMillis".equals(input) || "basic_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicDateTimeNoMillis();
    } else if ("basicOrdinalDate".equals(input) || "basic_ordinal_date".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDate();
    } else if ("basicOrdinalDateTime".equals(input) || "basic_ordinal_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDateTime();
    } else if ("basicOrdinalDateTimeNoMillis".equals(input)
            || "basic_ordinal_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDateTimeNoMillis();
    } else if ("basicTime".equals(input) || "basic_time".equals(input)) {
        formatter = ISODateTimeFormat.basicTime();
    } else if ("basicTimeNoMillis".equals(input) || "basic_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicTimeNoMillis();
    } else if ("basicTTime".equals(input) || "basic_t_Time".equals(input)) {
        formatter = ISODateTimeFormat.basicTTime();
    } else if ("basicTTimeNoMillis".equals(input) || "basic_t_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicTTimeNoMillis();
    } else if ("basicWeekDate".equals(input) || "basic_week_date".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDate();
    } else if ("basicWeekDateTime".equals(input) || "basic_week_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDateTime();
    } else if ("basicWeekDateTimeNoMillis".equals(input) || "basic_week_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDateTimeNoMillis();
    } else if ("date".equals(input)) {
        formatter = ISODateTimeFormat.date();
    } else if ("dateHour".equals(input) || "date_hour".equals(input)) {
        formatter = ISODateTimeFormat.dateHour();
    } else if ("dateHourMinute".equals(input) || "date_hour_minute".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinute();
    } else if ("dateHourMinuteSecond".equals(input) || "date_hour_minute_second".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecond();
    } else if ("dateHourMinuteSecondFraction".equals(input)
            || "date_hour_minute_second_fraction".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecondFraction();
    } else if ("dateHourMinuteSecondMillis".equals(input) || "date_hour_minute_second_millis".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecondMillis();
    } else if ("dateOptionalTime".equals(input) || "date_optional_time".equals(input)) {
        // in this case, we have a separate parser and printer since the dataOptionalTimeParser can't print
        // this sucks we should use the root local by default and not be dependent on the node
        return new FormatDateTimeFormatter(input,
                ISODateTimeFormat.dateOptionalTimeParser().withZone(DateTimeZone.UTC),
                ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC), locale);
    } else if ("dateTime".equals(input) || "date_time".equals(input)) {
        formatter = ISODateTimeFormat.dateTime();
    } else if ("dateTimeNoMillis".equals(input) || "date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.dateTimeNoMillis();
    } else if ("hour".equals(input)) {
        formatter = ISODateTimeFormat.hour();
    } else if ("hourMinute".equals(input) || "hour_minute".equals(input)) {
        formatter = ISODateTimeFormat.hourMinute();
    } else if ("hourMinuteSecond".equals(input) || "hour_minute_second".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecond();
    } else if ("hourMinuteSecondFraction".equals(input) || "hour_minute_second_fraction".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecondFraction();
    } else if ("hourMinuteSecondMillis".equals(input) || "hour_minute_second_millis".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecondMillis();
    } else if ("ordinalDate".equals(input) || "ordinal_date".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDate();
    } else if ("ordinalDateTime".equals(input) || "ordinal_date_time".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDateTime();
    } else if ("ordinalDateTimeNoMillis".equals(input) || "ordinal_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDateTimeNoMillis();
    } else if ("time".equals(input)) {
        formatter = ISODateTimeFormat.time();
    } else if ("tTime".equals(input) || "t_time".equals(input)) {
        formatter = ISODateTimeFormat.tTime();
    } else if ("tTimeNoMillis".equals(input) || "t_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.tTimeNoMillis();
    } else if ("weekDate".equals(input) || "week_date".equals(input)) {
        formatter = ISODateTimeFormat.weekDate();
    } else if ("weekDateTime".equals(input) || "week_date_time".equals(input)) {
        formatter = ISODateTimeFormat.weekDateTime();
    } else if ("weekyear".equals(input) || "week_year".equals(input)) {
        formatter = ISODateTimeFormat.weekyear();
    } else if ("weekyearWeek".equals(input)) {
        formatter = ISODateTimeFormat.weekyearWeek();
    } else if ("year".equals(input)) {
        formatter = ISODateTimeFormat.year();
    } else if ("yearMonth".equals(input) || "year_month".equals(input)) {
        formatter = ISODateTimeFormat.yearMonth();
    } else if ("yearMonthDay".equals(input) || "year_month_day".equals(input)) {
        formatter = ISODateTimeFormat.yearMonthDay();
    } else if (StringUtils.isNotBlank(input) && input.contains("||")) {
        String[] formats = StringUtils.split(input, "||");
        DateTimeParser[] parsers = new DateTimeParser[formats.length];

        if (formats.length == 1) {
            formatter = forPattern(input, locale).parser();
        } else {
            DateTimeFormatter dateTimeFormatter = null;
            for (int i = 0; i < formats.length; i++) {
                FormatDateTimeFormatter currentFormatter = forPattern(formats[i], locale);
                DateTimeFormatter currentParser = currentFormatter.parser();
                if (dateTimeFormatter == null) {
                    dateTimeFormatter = currentFormatter.printer();
                }
                parsers[i] = currentParser.getParser();
            }

            DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder()
                    .append(dateTimeFormatter.withZone(DateTimeZone.UTC).getPrinter(), parsers);
            formatter = builder.toFormatter();
        }
    } else {
        try {

            formatter = DateTimeFormat.forPattern(input);
        } catch (IllegalArgumentException e) {
            throw new IllegalArgumentException("Invalid format: [" + input + "]: " + e.getMessage(), e);
        }
    }

    return new FormatDateTimeFormatter(input, formatter.withZone(DateTimeZone.UTC), locale);
}

From source file:com.tuplejump.stargate.lucene.Dates.java

License:Apache License

/**
 * Parses a joda based pattern, including some named ones (similar to the built in Joda ISO ones).
 *///www .j  av a  2 s . c  o m
public static FormatDateTimeFormatter forPattern(String input, Locale locale) {
    if (StringUtils.isNotBlank(input)) {
        input = input.trim();
    }
    DateTimeFormatter formatter;
    if (input == null || input.length() == 0) {
        formatter = ISODateTimeFormat.yearMonthDay();
    } else if ("basicDate".equals(input) || "basic_date".equals(input)) {
        formatter = ISODateTimeFormat.basicDate();
    } else if ("basicDateTime".equals(input) || "basic_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicDateTime();
    } else if ("basicDateTimeNoMillis".equals(input) || "basic_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicDateTimeNoMillis();
    } else if ("basicOrdinalDate".equals(input) || "basic_ordinal_date".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDate();
    } else if ("basicOrdinalDateTime".equals(input) || "basic_ordinal_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDateTime();
    } else if ("basicOrdinalDateTimeNoMillis".equals(input)
            || "basic_ordinal_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicOrdinalDateTimeNoMillis();
    } else if ("basicTime".equals(input) || "basic_time".equals(input)) {
        formatter = ISODateTimeFormat.basicTime();
    } else if ("basicTimeNoMillis".equals(input) || "basic_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicTimeNoMillis();
    } else if ("basicTTime".equals(input) || "basic_t_Time".equals(input)) {
        formatter = ISODateTimeFormat.basicTTime();
    } else if ("basicTTimeNoMillis".equals(input) || "basic_t_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicTTimeNoMillis();
    } else if ("basicWeekDate".equals(input) || "basic_week_date".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDate();
    } else if ("basicWeekDateTime".equals(input) || "basic_week_date_time".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDateTime();
    } else if ("basicWeekDateTimeNoMillis".equals(input) || "basic_week_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.basicWeekDateTimeNoMillis();
    } else if ("date".equals(input)) {
        formatter = ISODateTimeFormat.date();
    } else if ("dateHour".equals(input) || "date_hour".equals(input)) {
        formatter = ISODateTimeFormat.dateHour();
    } else if ("dateHourMinute".equals(input) || "date_hour_minute".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinute();
    } else if ("dateHourMinuteSecond".equals(input) || "date_hour_minute_second".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecond();
    } else if ("dateHourMinuteSecondFraction".equals(input)
            || "date_hour_minute_second_fraction".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecondFraction();
    } else if ("dateHourMinuteSecondMillis".equals(input) || "date_hour_minute_second_millis".equals(input)) {
        formatter = ISODateTimeFormat.dateHourMinuteSecondMillis();
    } else if ("dateOptionalTime".equals(input) || "date_optional_time".equals(input)) {
        // in this case, we have a separate parser and printer since the dataOptionalTimeParser can't print
        // this sucks we should use the root local by default and not be dependent on the node
        return new FormatDateTimeFormatter(input,
                ISODateTimeFormat.dateOptionalTimeParser().withZone(DateTimeZone.UTC),
                ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC), locale);
    } else if ("dateTime".equals(input) || "date_time".equals(input)) {
        formatter = ISODateTimeFormat.dateTime();
    } else if ("dateTimeNoMillis".equals(input) || "date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.dateTimeNoMillis();
    } else if ("hour".equals(input)) {
        formatter = ISODateTimeFormat.hour();
    } else if ("hourMinute".equals(input) || "hour_minute".equals(input)) {
        formatter = ISODateTimeFormat.hourMinute();
    } else if ("hourMinuteSecond".equals(input) || "hour_minute_second".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecond();
    } else if ("hourMinuteSecondFraction".equals(input) || "hour_minute_second_fraction".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecondFraction();
    } else if ("hourMinuteSecondMillis".equals(input) || "hour_minute_second_millis".equals(input)) {
        formatter = ISODateTimeFormat.hourMinuteSecondMillis();
    } else if ("ordinalDate".equals(input) || "ordinal_date".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDate();
    } else if ("ordinalDateTime".equals(input) || "ordinal_date_time".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDateTime();
    } else if ("ordinalDateTimeNoMillis".equals(input) || "ordinal_date_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.ordinalDateTimeNoMillis();
    } else if ("time".equals(input)) {
        formatter = ISODateTimeFormat.time();
    } else if ("tTime".equals(input) || "t_time".equals(input)) {
        formatter = ISODateTimeFormat.tTime();
    } else if ("tTimeNoMillis".equals(input) || "t_time_no_millis".equals(input)) {
        formatter = ISODateTimeFormat.tTimeNoMillis();
    } else if ("weekDate".equals(input) || "week_date".equals(input)) {
        formatter = ISODateTimeFormat.weekDate();
    } else if ("weekDateTime".equals(input) || "week_date_time".equals(input)) {
        formatter = ISODateTimeFormat.weekDateTime();
    } else if ("weekyear".equals(input) || "week_year".equals(input)) {
        formatter = ISODateTimeFormat.weekyear();
    } else if ("weekyearWeek".equals(input)) {
        formatter = ISODateTimeFormat.weekyearWeek();
    } else if ("year".equals(input)) {
        formatter = ISODateTimeFormat.year();
    } else if ("yearMonth".equals(input) || "year_month".equals(input)) {
        formatter = ISODateTimeFormat.yearMonth();
    } else if ("yearMonthDay".equals(input) || "year_month_day".equals(input)) {
        formatter = ISODateTimeFormat.yearMonthDay();
    } else if (StringUtils.isNotBlank(input) && input.contains("||")) {
        String[] formats = StringUtils.split(input, "||");
        DateTimeParser[] parsers = new DateTimeParser[formats.length];

        if (formats.length == 1) {
            formatter = forPattern(input, locale).parser();
        } else {
            DateTimeFormatter dateTimeFormatter = null;
            for (int i = 0; i < formats.length; i++) {
                FormatDateTimeFormatter currentFormatter = forPattern(formats[i], locale);
                DateTimeFormatter currentParser = currentFormatter.parser();
                if (dateTimeFormatter == null) {
                    dateTimeFormatter = currentFormatter.printer();
                }
                parsers[i] = currentParser.getParser();
            }
            DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder()
                    .append(dateTimeFormatter.withZone(DateTimeZone.UTC).getPrinter(), parsers);
            formatter = builder.toFormatter();
        }
    } else {
        try {

            formatter = DateTimeFormat.forPattern(input);
        } catch (IllegalArgumentException e) {
            throw new IllegalArgumentException("Invalid format: [" + input + "]: " + e.getMessage(), e);
        }
    }

    return new FormatDateTimeFormatter(input, formatter.withZone(DateTimeZone.UTC), locale);
}

From source file:com.vityuk.ginger.provider.format.JodaTimeUtils.java

License:Apache License

private static DateTimeFormatter createJodaDateFormatter(FormatType formatType, DateFormatStyle formatStyle) {
    switch (formatType) {
    case TIME:/*from  w  ww . j a  v a2s. co m*/
        switch (formatStyle) {
        case SHORT:
            return DateTimeFormat.shortTime();
        case MEDIUM:
            return DateTimeFormat.mediumTime();
        case LONG:
            return DateTimeFormat.longTime();
        case FULL:
            return DateTimeFormat.fullTime();
        case DEFAULT:
            return ISODateTimeFormat.time();
        }
    case DATE:
        switch (formatStyle) {
        case SHORT:
            return DateTimeFormat.shortDate();
        case MEDIUM:
            return DateTimeFormat.mediumDate();
        case LONG:
            return DateTimeFormat.longDate();
        case FULL:
            return DateTimeFormat.fullDate();
        case DEFAULT:
            return ISODateTimeFormat.date();
        }
    case DATETIME:
        switch (formatStyle) {
        case SHORT:
            return DateTimeFormat.shortDateTime();
        case MEDIUM:
            return DateTimeFormat.mediumDateTime();
        case LONG:
            return DateTimeFormat.longDateTime();
        case FULL:
            return DateTimeFormat.fullDateTime();
        case DEFAULT:
            return ISODateTimeFormat.dateTime();
        }
    }

    throw new IllegalArgumentException();
}

From source file:jongo.JongoUtils.java

License:Open Source License

/**
 * Check if a string has the ISO time format. Uses the ISODateTimeFormat.time() from JodaTime
 * and returns a DateTime instance. The correct format is HH:mm:ss.SSSZZ or HHmmss.SSSZ
 * @param arg the string to check//w w  w .  j a va 2s .  co m
 * @return a DateTime instance if the string is in the correct ISO format.
 */
public static DateTime isTime(final String arg) {
    if (arg == null)
        return null;
    DateTime ret = null;
    DateTimeFormatter df;
    if (arg.contains(":")) {
        df = ISODateTimeFormat.time();
    } else {
        df = ISODateTimeFormat.basicTime();
    }

    try {
        ret = df.parseDateTime(arg);
    } catch (IllegalArgumentException e) {
        l.debug(arg + " is not a valid ISO time");
    }

    return ret;
}

From source file:jongo.JongoUtils.java

License:Open Source License

/**
 * Infers the java.sql.Types of the given String and returns the JDBC mappable Object corresponding to it.
 * The conversions are like this://w  ww .j  av a2s  .c om
 * String -> String
 * Numeric -> Integer
 * Date or Time -> Date
 * Decimal -> BigDecimal
 * ??? -> TimeStamp
 * @param val a String with the value to be mapped
 * @return a JDBC mappable object instance with the value
 */
public static Object parseValue(String val) {
    Object ret = null;
    if (!StringUtils.isWhitespace(val) && StringUtils.isNumeric(val)) {
        try {
            ret = Integer.valueOf(val);
        } catch (Exception e) {
            l.debug(e.getMessage());
        }
    } else {
        DateTime date = JongoUtils.isDateTime(val);
        if (date != null) {
            l.debug("Got a DateTime " + date.toString(ISODateTimeFormat.dateTime()));
            ret = new java.sql.Timestamp(date.getMillis());
        } else {
            date = JongoUtils.isDate(val);
            if (date != null) {
                l.debug("Got a Date " + date.toString(ISODateTimeFormat.date()));
                ret = new java.sql.Date(date.getMillis());
            } else {
                date = JongoUtils.isTime(val);
                if (date != null) {
                    l.debug("Got a Time " + date.toString(ISODateTimeFormat.time()));
                    ret = new java.sql.Time(date.getMillis());
                }
            }
        }

        if (ret == null && val != null) {
            l.debug("Not a datetime. Try someting else. ");
            try {
                ret = new BigDecimal(val);
            } catch (NumberFormatException e) {
                l.debug(e.getMessage());
                ret = val;
            }
        }
    }
    return ret;
}

From source file:org.apache.drill.exec.vector.complex.fn.BasicJsonOutput.java

License:Apache License

protected BasicJsonOutput(JsonGenerator gen, DateOutputFormat dateOutput) {
    Preconditions.checkNotNull(dateOutput);
    Preconditions.checkNotNull(gen);/*from  w  w  w  . j av a2 s  .c om*/

    this.gen = gen;

    switch (dateOutput) {
    case SQL: {
        dateFormatter = DateUtility.formatDate;
        timeFormatter = DateUtility.formatTime;
        timestampFormatter = DateUtility.formatTimeStamp;
        break;
    }
    case ISO: {
        dateFormatter = ISODateTimeFormat.date();
        timeFormatter = ISODateTimeFormat.time();
        timestampFormatter = ISODateTimeFormat.dateTime();
        break;
    }

    default:
        throw new UnsupportedOperationException(
                String.format("Unable to support date output of type %s.", dateOutput));
    }
}