@ScalarFunction("to_iso8601") @SqlType("varchar(35)") // YYYY-MM-DDTHH:MM:SS.mmm+HH:MM is a standard notation, and it requires 29 characters. // However extended notation with format ±(Y)+-MM-DDTHH:MM:SS.mmm+HH:MM is also acceptable and as // the maximum year represented by 64bits timestamp is ~584944387 it may require up to 35 characters. public static Slice toISO8601FromTimestamp(ConnectorSession session, @SqlType(StandardTypes.TIMESTAMP) long timestamp) { if (session.isLegacyTimestamp()) { DateTimeFormatter formatter = ISODateTimeFormat.dateTime() .withChronology(getChronology(session.getTimeZoneKey())); return utf8Slice(formatter.print(timestamp)); } else { DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinuteSecondMillis() .withChronology(UTC_CHRONOLOGY); return utf8Slice(formatter.print(timestamp)); } }
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)) {
public static String dateToString(DateTime date) { return date.toString(ISODateTimeFormat.dateHourMinuteSecondMillis().withZoneUTC()) + "Z"; }
public DateTimeFormatChecker() { supportedFormatters.put("yyyyMMdd", ISODateTimeFormat.basicDate()); supportedFormatters.put("yyyyMMdd'T'HHmmss.SSSZ", ISODateTimeFormat.basicDateTime()); supportedFormatters.put("yyyyMMdd'T'HHmmssZ", ISODateTimeFormat.basicDateTimeNoMillis()); supportedFormatters.put("HHmmss.SSSZ", ISODateTimeFormat.basicTime()); supportedFormatters.put("HHmmssZ", ISODateTimeFormat.basicTimeNoMillis()); supportedFormatters.put("yyyy-MM-dd", ISODateTimeFormat.date()); supportedFormatters.put("yyyy-MM-dd HH:mm:ss", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")); supportedFormatters.put("yyyy-MM-dd HH:mm:ss.SSSSSS", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS")); // Greenplum DB NOW() 함수 포맷 supportedFormatters.put("yyyy-MM-dd'T'HH:mm:ss.SSS", ISODateTimeFormat.dateHourMinuteSecondMillis()); supportedFormatters.put("yyyy-MM-dd'T'HH:mm:ss.SSSZZ", ISODateTimeFormat.dateTime()); supportedFormatters.put("yyyy-MM-dd'T'HH:mm:ssZZ", ISODateTimeFormat.dateTimeNoMillis()); supportedFormatters.put("HH:mm:ss.SSS", ISODateTimeFormat.hourMinuteSecondMillis()); supportedFormatters.put("HH:mm:ss", ISODateTimeFormat.hourMinuteSecond()); supportedFormatters.put("HH:mm", ISODateTimeFormat.hourMinute()); }
private static void processDates(final FulltextIndexDocument indexDocument, final PersonIndexDocument input) { DateTime creationTimestamp = new DateTime(input.getCreationTimestamp()); indexDocument.addField(PeopleIndexFieldConstants.FIELD_CREATION_TIMESTAMP, creationTimestamp.toString(ISODateTimeFormat.dateHourMinuteSecondMillis().withZoneUTC()) + "Z"); DateTime modificationTimestamp = new DateTime(input.getModificationTimestamp()); indexDocument.addField(PeopleIndexFieldConstants.FIELD_MODIFICATION_TIMESTAMP, modificationTimestamp.toString(ISODateTimeFormat.dateHourMinuteSecondMillis().withZoneUTC()) + "Z"); }
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)) {
@ScalarFunction("to_iso8601") @SqlType("varchar(35)") // YYYY-MM-DDTHH:MM:SS.mmm+HH:MM is a standard notation, and it requires 29 characters. // However extended notation with format ±(Y)+-MM-DDTHH:MM:SS.mmm+HH:MM is also acceptable and as // the maximum year represented by 64bits timestamp is ~584944387 it may require up to 35 characters. public static Slice toISO8601FromTimestamp(ConnectorSession session, @SqlType(StandardTypes.TIMESTAMP) long timestamp) { if (session.isLegacyTimestamp()) { DateTimeFormatter formatter = ISODateTimeFormat.dateTime() .withChronology(getChronology(session.getTimeZoneKey())); return utf8Slice(formatter.print(timestamp)); } else { DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinuteSecondMillis() .withChronology(UTC_CHRONOLOGY); return utf8Slice(formatter.print(timestamp)); } }
@ScalarFunction("to_iso8601") @SqlType("varchar(35)") // YYYY-MM-DDTHH:MM:SS.mmm+HH:MM is a standard notation, and it requires 29 characters. // However extended notation with format ±(Y)+-MM-DDTHH:MM:SS.mmm+HH:MM is also acceptable and as // the maximum year represented by 64bits timestamp is ~584944387 it may require up to 35 characters. public static Slice toISO8601FromTimestamp(ConnectorSession session, @SqlType(StandardTypes.TIMESTAMP) long timestamp) { if (session.isLegacyTimestamp()) { DateTimeFormatter formatter = ISODateTimeFormat.dateTime() .withChronology(getChronology(session.getTimeZoneKey())); return utf8Slice(formatter.print(timestamp)); } else { DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinuteSecondMillis() .withChronology(UTC_CHRONOLOGY); return utf8Slice(formatter.print(timestamp)); } }
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)) {
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)) {
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)) {
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)) {
.dateHourMinuteSecondMillis(); final RandomGenerator rng = new MersenneTwister(123);
return new FormatterAndType(ISODateTimeFormat.dateHourMinuteSecondMillis(), ElasticMappingSet.Type.TIMESTAMP);