List of usage examples for org.joda.time.format DateTimeFormatter withZone
public DateTimeFormatter withZone(DateTimeZone zone)
From source file:com.mycollab.core.utils.DateTimeUtils.java
License:Open Source License
public static String formatDate(Date date, String dateFormat, Locale locale, TimeZone timezone) { if (date == null) { return ""; }/* ww w .j ava 2 s. co m*/ DateTimeFormatter formatter = DateTimeFormat.forPattern(dateFormat).withLocale(locale); if (timezone != null) { formatter = formatter.withZone(DateTimeZone.forTimeZone(timezone)); } return formatter.print(new DateTime(date)); }
From source file:com.sos.hibernate.classes.UtcTimeHelper.java
License:Apache License
public static String convertTimeZonesToString(String dateFormat, String fromTimeZone, String toTimeZone, DateTime fromDateTime) {/*from w ww . ja v a2 s . com*/ DateTimeZone fromZone = DateTimeZone.forID(fromTimeZone); DateTimeZone toZone = DateTimeZone.forID(toTimeZone); DateTime dateTime = new DateTime(fromDateTime); dateTime = dateTime.withZoneRetainFields(fromZone); DateTime toDateTime = new DateTime(dateTime).withZone(toZone); DateTimeFormatter oFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'H:mm:ss.SSSZ"); DateTimeFormatter oFormatter2 = DateTimeFormat.forPattern(dateFormat); DateTime newDate = oFormatter.withOffsetParsed().parseDateTime(toDateTime.toString()); return oFormatter2.withZone(toZone).print(newDate.getMillis()); }
From source file:com.sos.hibernate.classes.UtcTimeHelper.java
License:Apache License
public static Date convertTimeZonesToDate(String fromTimeZone, String toTimeZone, DateTime fromDateTime) { if (fromDateTime == null) { return null; }/*from w ww . j a v a2s. co m*/ DateTimeZone fromZone = DateTimeZone.forID(fromTimeZone); DateTimeZone toZone = DateTimeZone.forID(toTimeZone); DateTime dateTime = new DateTime(fromDateTime); dateTime = dateTime.withZoneRetainFields(fromZone); DateTime toDateTime = new DateTime(dateTime).withZone(toZone); DateTimeFormatter oFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'H:mm:ss.SSSZ"); DateTimeFormatter oFormatter2 = DateTimeFormat.forPattern("yyyy-MM-dd H:mm:ss.ss"); DateTime newDate = oFormatter.withOffsetParsed().parseDateTime(toDateTime.toString()); try { return new SimpleDateFormat("yyyy-MM-dd H:mm:ss.ss") .parse(oFormatter2.withZone(toZone).print(newDate.getMillis())); } catch (ParseException e) { e.printStackTrace(); return null; } }
From source file:com.thinkbiganalytics.policy.standardization.DateTimeStandardizer.java
License:Apache License
/** * Returns a time formatter for the specified timezone * * @param format the current formatter * @param timezone the timezone string/* www . j a va2 s . c om*/ * @return a time formatter for the specified timezone */ protected DateTimeFormatter formatterForTimezone(DateTimeFormatter format, String timezone) { if (StringUtils.isEmpty(timezone)) { return format; } if ("UTC".equals(timezone)) { return format.withZoneUTC(); } return format.withZone(DateTimeZone.forTimeZone(TimeZone.getTimeZone(timezone))); }
From source file:com.thoughtworks.xstream.core.util.ISO8601JodaTimeConverter.java
License:Open Source License
@Override public Object fromString(final String str) { for (final DateTimeFormatter formatter : formattersUTC) { try {//from www. ja v a2 s .c o m final DateTime dt = formatter.parseDateTime(str); final Calendar calendar = dt.toGregorianCalendar(); calendar.setTimeZone(TimeZone.getDefault()); return calendar; } catch (final IllegalArgumentException e) { // try with next formatter } } final DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getDefault()); for (final DateTimeFormatter element : formattersNoUTC) { try { final DateTimeFormatter formatter = element.withZone(dateTimeZone); final DateTime dt = formatter.parseDateTime(str); final Calendar calendar = dt.toGregorianCalendar(); calendar.setTimeZone(TimeZone.getDefault()); return calendar; } catch (final IllegalArgumentException e) { // try with next formatter } } final ConversionException exception = new ConversionException("Cannot parse date"); exception.add("date", str); throw exception; }
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 w w .j a va 2s . 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 .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:edu.unc.lib.dl.util.DateTimeUtil.java
License:Apache License
/** * Parse a date in any ISO 8601 format. Default TZ is based on Locale. * * @param isoDate/*from w w w.j ava 2s. c o m*/ * ISO8601 date/time string with or without TZ offset * @return a Joda DateTime object in UTC (call toString() to print) */ public static DateTime parseISO8601toUTC(String isoDate) { DateTime result = null; DateTimeFormatter fmt = ISODateTimeFormat.dateTimeParser().withOffsetParsed(); // TODO what about preserving the precision of the original? DateTime isoDT = fmt.parseDateTime(isoDate); if (isoDT.year().get() > 9999) { // you parsed my month as part of the year! try { fmt = DateTimeFormat.forPattern("yyyyMMdd"); fmt = fmt.withZone(DateTimeZone.forID("America/New_York")); isoDT = fmt.parseDateTime(isoDate); } catch (IllegalArgumentException e) { try { fmt = DateTimeFormat.forPattern("yyyyMM"); fmt = fmt.withZone(DateTimeZone.forID("America/New_York")); isoDT = fmt.parseDateTime(isoDate); } catch (IllegalArgumentException e1) { try { fmt = DateTimeFormat.forPattern("yyyy"); fmt = fmt.withZone(DateTimeZone.forID("America/New_York")); isoDT = fmt.parseDateTime(isoDate); } catch (IllegalArgumentException ignored) { // I guess we go with first parse? } } } } result = isoDT.withZoneRetainFields(DateTimeZone.forID("Etc/UTC")); return result; }
From source file:fr.inria.wimmics.prissma.selection.entities.ContextUnit.java
License:Open Source License
/** * Retrieves the specified property value from the context unit. * Used by GEO and TIME context units.//from ww w . j a va 2 s .c o m * @param prop * @return * @throws ContextUnitException */ public double getComplexCtxUnitProp(Property prop) throws ContextUnitException { if (!instance.isResource()) throw new ContextUnitException(); if (this.type != CtxUnitType.GEO && this.type != CtxUnitType.TIME && instance.isResource()) throw new ContextUnitException(); else { Statement stat = ((Resource) instance).getProperty(prop); if (stat == null) throw new ContextUnitException(); // TIME conversions if (prop.equals(PrissmaProperties.pStart)) { String timeStr = stat.getLiteral().getString(); DateTimeFormatter dtf = ISODateTimeFormat.timeParser(); DateTime startTime = dtf.withZone(DateTimeZone.UTC).parseDateTime(timeStr); // UTC by default long millis = startTime.getMillis(); long seconds = millis / 1000; return seconds; } else if (prop.equals(PrissmaProperties.pDuration)) { String durationStr = stat.getLiteral().getString(); PeriodFormatter pf = ISOPeriodFormat.standard(); Period period = pf.parsePeriod(durationStr); int seconds = period.toStandardSeconds().getSeconds(); return seconds; } return stat.getLiteral().getDouble(); } }
From source file:name.martingeisse.sql.config.AbstractCustomJodaType.java
License:Open Source License
/** * Obtains a date-time formatter for this type using the default time zone. *///w w w .j a v a 2s . com private final DateTimeFormatter getFormatter() { DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern); return (timeZone == null ? formatter : formatter.withZone(timeZone)); }