List of usage examples for org.joda.time.format ISODateTimeFormat dateTime
public static DateTimeFormatter dateTime()
From source file:com.stratio.ingestion.serializer.elasticsearch.TimeStampedEvent.java
License:Apache License
TimeStampedEvent(Event base) { super();// w w w.j av a 2 s . co m setBody(base.getBody()); Map<String, String> headers = Maps.newHashMap(base.getHeaders()); String timestampHeader = headers.get("@timestamp"); Long ts = null; if (!StringUtils.isBlank(timestampHeader)) { try { ts = Long.parseLong(timestampHeader); headers.put("@timestamp", ISODateTimeFormat.dateTime().withZoneUTC().print(ts)); } catch (RuntimeException ex) { log.trace("Could not parse timestamp as long: {}", timestampHeader); try { ts = ISODateTimeFormat.dateOptionalTimeParser().withZoneUTC().parseMillis(timestampHeader); } catch (RuntimeException ex2) { log.trace("Could not parse timestamp as dateOptionalTime: {}", timestampHeader); } } } if (ts == null) { DateTime now = DateTime.now(); ts = now.getMillis(); headers.put("@timestamp", ISODateTimeFormat.dateTime().withZoneUTC().print(now)); } this.timestamp = ts; setHeaders(headers); }
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 w w . ja va 2 s .com*/ * @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);// w w w. j a v a 2s . 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.tkmtwo.timex.convert.IsoDateTimeConverter.java
License:Apache License
@Override public DateTime convert(String s) { String ts = blankToNull(s);/*from w w w . j a v a2 s . c o m*/ if (ts == null) { return null; } int tsLength = ts.length(); if (tsLength >= 23 && DATE_TIME_SEPARATOR.matches(ts.charAt(10))) { //ISO Extended with millis yyyy-MM-ddTHH:mm:ss.SSSZ return ISODateTimeFormat.dateTime().parseDateTime(ensureTeeAndZee(ts, 10)); } else if (tsLength >= 19 && DATE_TIME_SEPARATOR.matches(ts.charAt(10))) { //ISO Extended without millis yyyy-MM-ddTHH:mm:ssZ return ISODateTimeFormat.dateTimeNoMillis().parseDateTime(ensureTeeAndZee(ts, 10)); } else if (tsLength >= 19 && DATE_TIME_SEPARATOR.matches(ts.charAt(8))) { //ISO Basic with millis yyyyMMddTHHmmss.SSSZ return ISODateTimeFormat.basicDateTime().parseDateTime(ensureTeeAndZee(ts, 8)); } else if (tsLength >= 15 && DATE_TIME_SEPARATOR.matches(ts.charAt(8))) { //ISO Basic without millis yyyyMMddTHHmmssZ return ISODateTimeFormat.basicDateTimeNoMillis().parseDateTime(ensureTeeAndZee(ts, 8)); } else if (ASCII_DIGITS.matchesAllOf(ts)) { return new DateTime(Long.parseLong(ts)); } throw new IllegalArgumentException( String.format("Input string '%s' can not be converted to a DateTime.", s)); }
From source file:com.tremolosecurity.provisioning.core.providers.BasicDB.java
License:Apache License
private void insertCreate(User user, Set<String> attributes, Map<String, Attribute> attrs, Connection con, Map<String, Object> request) throws SQLException, ProvisioningException { int approvalID = 0; if (request.containsKey("APPROVAL_ID")) { approvalID = (Integer) request.get("APPROVAL_ID"); }//from ww w . j a v a 2 s . c om Workflow workflow = (Workflow) request.get("WORKFLOW"); StringBuffer insert = new StringBuffer(); insert.append("INSERT INTO ").append(this.userTable).append(" ("); for (String attr : attributes) { if (attrs.get(attr) != null) { getFieldName(attr, insert).append(","); } } insert.setLength(insert.length() - 1); insert.append(") values ("); for (String attr : attributes) { if (attrs.get(attr) != null) { insert.append("?,"); } } insert.setLength(insert.length() - 1); insert.append(")"); PreparedStatement ps = con.prepareStatement(insert.toString(), Statement.RETURN_GENERATED_KEYS); int i = 1; for (String attr : attributes) { if (attrs.get(attr) != null) { Attribute.DataType dataType = attrs.get(attr).getDataType(); switch (dataType) { case string: ps.setString(i, attrs.get(attr).getValues().get(0)); break; case intNum: ps.setInt(i, Integer.parseInt(attrs.get(attr).getValues().get(0))); break; case longNum: ps.setLong(i, Long.parseLong(attrs.get(attr).getValues().get(0))); break; case date: ps.setDate(i, new Date(ISODateTimeFormat.date() .parseDateTime(attrs.get(attr).getValues().get(0)).getMillis())); break; case timeStamp: ps.setTimestamp(i, new Timestamp(ISODateTimeFormat.dateTime() .parseDateTime(attrs.get(attr).getValues().get(0)).getMillis())); break; } i++; } } ps.executeUpdate(); ResultSet rs = ps.getGeneratedKeys(); int id; if (rs.next() && !this.driver.contains("oracle")) { id = (int) rs.getInt(1); } else { StringBuffer select = new StringBuffer(); select.append("SELECT "); this.getFieldName(this.userPrimaryKey, select).append(" FROM ").append(this.userTable) .append(" WHERE "); this.getFieldName(this.userName, select).append("=?"); PreparedStatement getUserId = con.prepareStatement(select.toString()); //con.prepareStatement( + this.userPrimaryKey + " FROM " + this.userTable + " WHERE " + this.userName + "=?"); getUserId.setString(1, user.getUserID()); ResultSet userResult = getUserId.executeQuery(); userResult.next(); id = (int) userResult.getInt(this.userPrimaryKey); userResult.close(); getUserId.close(); } this.cfgMgr.getProvisioningEngine().logAction(this.name, true, ActionType.Add, approvalID, workflow, "userName", user.getUserID()); for (String attr : attributes) { if (attrs.get(attr) != null) { this.cfgMgr.getProvisioningEngine().logAction(this.name, false, ActionType.Add, approvalID, workflow, attr, attrs.get(attr).getValues().get(0)); } } if (user.getGroups().size() > 0) { switch (this.groupMode) { case None: break; case One2Many: insert.setLength(0); insert.append("INSERT INTO ").append(this.groupTable).append(" (").append(this.groupUserKey) .append(",").append(this.groupName).append(") VALUES (?,?)"); ps = con.prepareStatement(insert.toString()); for (String groupName : user.getGroups()) { ps.setInt(1, id); ps.setString(2, groupName); ps.executeUpdate(); this.cfgMgr.getProvisioningEngine().logAction(this.name, false, ActionType.Add, approvalID, workflow, "group", groupName); } break; case Many2Many: many2manySetGroupsCreate(user, insert, con, id, request); break; } } }
From source file:com.tremolosecurity.provisioning.core.providers.BasicDB.java
License:Apache License
private PreparedStatement updateField(User user, Connection con, StringBuffer b, String attrName, String userID, int userIDnum) throws SQLException { b.setLength(0);/*from www .j ava2 s. c o m*/ b.append("UPDATE ").append(this.userTable).append(" SET "); this.getFieldName(attrName, b).append("=? WHERE "); this.getFieldName(this.userPrimaryKey, b).append("=?"); PreparedStatement ps = con.prepareStatement(b.toString()); ps.setString(1, user.getAttribs().get(attrName).getValues().get(0)); if (userIDnum != -1) { ps.setInt(2, userIDnum); } else { Attribute.DataType tat = user.getAttribs().get(attrName).getDataType(); switch (tat) { case string: ps.setString(2, userID); break; case intNum: ps.setInt(2, Integer.parseInt(userID)); break; case longNum: ps.setLong(2, Long.parseLong(userID)); break; case date: ps.setDate(2, new Date(ISODateTimeFormat.date().parseDateTime(userID).getMillis())); break; case timeStamp: ps.setTimestamp(2, new Timestamp(ISODateTimeFormat.dateTime().parseDateTime(userID).getMillis())); break; } ps.setString(2, userID); } ps.executeUpdate(); return ps; }
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). *///from w ww .j av a2s . 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). *///from w w w . j a v a 2 s. co 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.vangent.hieos.services.sts.model.SOAPHeaderData.java
License:Open Source License
/** * * @param securityHeader/*w ww . java 2 s . c om*/ * @return */ private DateTime getTimestampCreated(OMElement securityHeader) { DateTime time = null; try { OMElement timeNode = XPathHelper.selectSingleNode(securityHeader, "./ns:Timestamp/ns:Created[1]", STSConstants.WSSECURITY_UTILITY_NS); if (timeNode != null) { String timeString = timeNode.getText(); DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); time = fmt.parseDateTime(timeString); } } catch (XPathHelperException ex) { // Do nothing - will be validated later. } return time; }
From source file:com.vangent.hieos.services.sts.model.SOAPHeaderData.java
License:Open Source License
/** * * @param securityHeader// w w w . jav a 2 s.com * @return */ private DateTime getTimestampExpires(OMElement securityHeader) { DateTime time = null; try { OMElement timeNode = XPathHelper.selectSingleNode(securityHeader, "./ns:Timestamp/ns:Expires[1]", STSConstants.WSSECURITY_UTILITY_NS); if (timeNode != null) { String timeString = timeNode.getText(); DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); time = fmt.parseDateTime(timeString); } } catch (XPathHelperException ex) { // Do nothing - will be validated later. } return time; }