List of usage examples for org.joda.time.format ISODateTimeFormat time
public static DateTimeFormatter time()
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)); } }