List of usage examples for org.joda.time.format DateTimeFormatterBuilder DateTimeFormatterBuilder
public DateTimeFormatterBuilder()
From source file:com.inbravo.scribe.rest.service.crm.CRMMessageFormatUtils.java
License:Open Source License
/** * /* w w w . j av a2 s . c o m*/ * @param finishDate * @return * @throws Exception */ public static final DateTime validateInputDate(final String date, final String permittedDateFormats) throws Exception { logger.debug( "----Inside validateInputDate, date: " + date + " & permittedDateFormats: " + permittedDateFormats); /* Seperate all the formats */ final String[] defaultDateFormats = permittedDateFormats.split(","); /* Create array for all date parsing formats */ final DateTimeParser[] dateTimeParser = new DateTimeParser[defaultDateFormats.length]; /* Parse with individual formats */ for (int i = 0; i < defaultDateFormats.length; i++) { /* If format is valid */ if (defaultDateFormats[i] != null && !"".equals(defaultDateFormats[i])) { /* Create new parser for each format */ dateTimeParser[i] = DateTimeFormat.forPattern(defaultDateFormats[i].trim()).getParser(); } } /* Final date formater builder */ final DateTimeFormatter dateTimeFormatter = new DateTimeFormatterBuilder().append(null, dateTimeParser) .toFormatter(); /* Parse user supplied date */ final DateTime updatedDate = dateTimeFormatter.parseDateTime(date); logger.debug("----Inside validateInputDate, updated date: " + updatedDate); /* Return updated date */ return updatedDate; }
From source file:com.metabroadcast.common.social.auth.ictomorrow.ICTomorrowApiHelper.java
private ICTomorrowItemMetadata getItem(Element itemElement) { Integer contentHandle = Integer.valueOf(itemElement.getAttributeValue("ContentHandle")); String contentKey = itemElement.getFirstChildElement("Key").getValue().trim(); ICTomorrowItemMetadata item = new ICTomorrowItemMetadata(contentHandle, contentKey); item.setChannelTitle(getCharacteristic(itemElement, "Channel-Title")); String link = getCharacteristic(itemElement, "Link"); if (link == null) { link = getCharacteristic(itemElement, "URL Location"); }/*from www . ja va 2s . c o m*/ item.setLink(link); item.setSource(getCharacteristic(itemElement, "Source")); item.setWebmaster(getCharacteristic(itemElement, "WebMaster")); item.setTitle(getOptionalValue(itemElement, "Title")); item.setContentProvider(getOptionalValue(itemElement, "ContentProvider")); item.setLicenceTemplateName(getOptionalValue(itemElement, "LicenseTemplateName")); String keywords = getCharacteristic(itemElement, "Keywords"); if (keywords != null) { item.setKeywords( ImmutableSet.copyOf(Splitter.on(",").trimResults().omitEmptyStrings().split(keywords))); } String dateString = getCharacteristic(itemElement, "Pub-date"); if (dateString != null) { DateTimeFormatter dateParser = new DateTimeFormatterBuilder().appendDayOfWeekShortText() .appendLiteral(", ").appendDayOfMonth(2).appendLiteral(" ").appendMonthOfYearShortText() .appendLiteral(" ").appendYear(4, 4).appendLiteral(" ").appendHourOfDay(2).appendLiteral(":") .appendMinuteOfHour(2).appendLiteral(":").appendSecondOfMinute(2).appendLiteral(" GMT") .toFormatter(); //DateTimeFormat.forPattern("E, dd MM yyyy HH:mm:ss z"); DateTime date = dateParser.parseDateTime(dateString); item.setPublishedDate(date); } return item; }
From source file:com.miraisolutions.xlconnect.utils.RPOSIXDateTimeFormatter.java
License:Open Source License
private org.joda.time.format.DateTimeFormatter getFormatter(String format) { if (cache.containsKey(format)) return cache.get(format); DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); for (int i = 0; i < format.length(); ++i) { if (format.charAt(i) == '%' && i + 1 < format.length()) { char specifier = format.charAt(++i); switch (specifier) { case '%': builder.appendLiteral("%"); break; case 'a': // Abbreviated weekday name in the current locale. (Also matches // full name on input.) builder.appendDayOfWeekShortText(); break; case 'A': // Full weekday name in the current locale. (Also matches // abbreviated name on input.) builder.appendDayOfWeekText(); break; case 'b': // Abbreviated month name in the current locale. (Also matches // full name on input.) builder.appendMonthOfYearShortText(); break; case 'B': // Full month name in the current locale. (Also matches // abbreviated name on input.) builder.appendMonthOfYearText(); break; case 'c': // Date and time. Locale-specific on output, "%a %b %e // %H:%M:%S %Y" on input. throw new UnsupportedOperationException("%c not yet implemented"); case 'd': // Day of the month as decimal number (01-31). builder.appendDayOfMonth(2); break; case 'H': // Hours as decimal number (00-23). builder.appendHourOfDay(2); break; case 'I': // Hours as decimal number (01-12). builder.appendHourOfHalfday(2); break; case 'j': // Day of year as decimal number (001-366). builder.appendDayOfYear(3); break; case 'm': // Month as decimal number (01-12). builder.appendMonthOfYear(2); break; case 'M': // Minute as decimal number (00-59). builder.appendMinuteOfHour(2); break; case 'p': // AM/PM indicator in the locale. Used in conjunction with %I // and *not* with %H. An empty string in some locales. builder.appendHalfdayOfDayText(); break; case 'O': if (i + 1 >= format.length()) { builder.appendLiteral("%O"); } else { switch (format.charAt(++i)) { case 'S': // Specific to R is %OSn, which for output gives the seconds to 0 // <= n <= 6 decimal places (and if %OS is not followed by a // digit, it uses the setting of getOption("digits.secs"), or if // that is unset, n = 3). Further, for strptime %OS will input // seconds including fractional seconds. Note that %S ignores (and // not rounds) fractional parts on output. // TODO: not sure how to handle fractional seconds here builder.appendSecondOfMinute(2); break; default: throw new UnsupportedOperationException("%O[dHImMUVwWy] not yet implemented"); }/* ww w .j a v a 2s. c o m*/ } break; case 'S': // Second as decimal number (00-61), allowing for up to two // leap-seconds (but POSIX-compliant implementations will ignore // leap seconds). // TODO: I have no idea what the docs are talking about in relation // to leap seconds builder.appendSecondOfMinute(2); break; // case 'U': // Week of the year as decimal number (00-53) using Sunday as // the first day 1 of the week (and typically with the first // Sunday of the year as day 1 of week 1). The US convention. // case 'w': // Weekday as decimal number (0-6, Sunday is 0). // case 'W': // Week of the year as decimal number (00-53) using Monday as // the first day of week (and typically with the first Monday of // the year as day 1 of week 1). The UK convention. // %x Date. Locale-specific on output, "%y/%m/%d" on input. //%X Time. Locale-specific on output, "%H:%M:%S" on input. case 'y': // Year without century (00-99). Values 00 to 68 are prefixed by // 20 and 69 to 99 by 19 - that is the behaviour specified by // the 2004 POSIX standard, but it does also say it is expected // that in a future version the default century inferred from a // 2-digit year will change. builder.appendTwoDigitYear(1968, true); break; case 'Y': // Year with century builder.appendYear(1, 4); break; case 'z': // Signed offset in hours and minutes from UTC, so -0800 is 8 // hours behind UTC. builder.appendTimeZoneOffset(null /* always show offset, even when zero */, true /* show seperators */, 1 /* min fields (hour, minute, etc) */, 2 /* max fields */ ); break; case 'Z': // (output only.) Time zone as a character string (empty if not // available). builder.appendTimeZoneName(); break; default: throw new UnsupportedOperationException("%" + specifier + " not yet implemented"); } } else { builder.appendLiteral(format.substring(i, i + 1)); } } org.joda.time.format.DateTimeFormatter formatter = builder.toFormatter(); cache.put(format, formatter); return formatter; }
From source file:com.proofpoint.http.server.DelimitedRequestLog.java
License:Apache License
public DelimitedRequestLog(String filename, int retainDays) throws IOException { out = new RolloverFileOutputStream(filename, true, retainDays); writer = new OutputStreamWriter(out); isoFormatter = new DateTimeFormatterBuilder().append(ISODateTimeFormat.dateHourMinuteSecondFraction()) .appendTimeZoneOffset("Z", true, 2, 2).toFormatter(); }
From source file:com.quinsoft.zeidon.utils.JoeUtils.java
License:Open Source License
/** * Returns a DateTimeFormatter that can parse and print dates in the format of * editString. There can be multiple edit strings which are separated by a "|" * character. If there are more than one then the first one is considered to * be the "print" format./*from w w w . j a v a 2s . com*/ * * NOTE: Automatically adds ISO 8601 parser: 2016-11-29T05:41:02+00:00 * * @param editString * @return */ public static DateTimeFormatter createDateFormatterFromEditString(String editString) { String[] strings = editString.split("\\|"); DateTimeParser list[] = new DateTimeParser[strings.length + 1]; DateTimePrinter printer = null; for (int i = 0; i < strings.length; i++) { try { DateTimeFormatter f = DateTimeFormat.forPattern(strings[i]); if (printer == null) printer = f.getPrinter(); list[i] = f.getParser(); } catch (Exception e) { throw ZeidonException.wrapException(e).appendMessage("Format string = %s", strings[i]); } } list[strings.length] = ISODateTimeFormat.dateTimeParser().getParser(); DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); builder.append(printer, list); DateTimeFormatter formatter = builder.toFormatter(); return formatter; }
From source file:com.reveldigital.api.util.DateTypeFormatter.java
License:Apache License
/** * Create date formatter//from w w w. j av a 2s. c o m */ public DateTypeFormatter() { formats = new DateTimeFormatter[4]; formats[0] = ISODateTimeFormat.dateTime(); //.withZone(DateTimeZone.UTC); formats[1] = new DateTimeFormatterBuilder().appendPattern(DATE_TIME_FORMAT).toFormatter(); formats[2] = new DateTimeFormatterBuilder().appendPattern(DATE_ONLY_FORMAT).toFormatter(); formats[3] = new DateTimeFormatterBuilder().appendPattern(TIME_ONLY_FORMAT).toFormatter(); }
From source file:com.srotya.tau.dengine.validation.DateInterceptor.java
License:Apache License
public DateInterceptor() { formatter = new DateTimeFormatterBuilder().append(null, formats).toFormatter(); }
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 av a 2 s . com*/ 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). *//* w w w. j a v a2 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.wealdtech.utils.RangeFormatter.java
License:Open Source License
private String doFormat(final DateTime datetime, final Details formatDetails) { final DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); boolean started = false; if (style != Style.TIME_ONLY) { if (formatDetails.showDayOfWeek) { if (style == Style.NORMAL) { builder.appendDayOfWeekShortText(); } else { builder.appendDayOfWeekText(); }/*from w w w . j av a2 s . c o m*/ started = true; } if (formatDetails.showDayOfMonth) { if (started) { builder.appendLiteral(' '); } builder.appendDayOfMonth(1); started = true; } if (formatDetails.showMonthOfYear) { if (started) { builder.appendLiteral(' '); } if (style == Style.NORMAL) { builder.appendMonthOfYearShortText(); } else { builder.appendMonthOfYearText(); } started = true; } if (formatDetails.showYear) { if (started) { builder.appendLiteral(' '); } builder.appendYear(4, 4); started = true; } } if (formatDetails.showTime) { if (started) { builder.appendLiteral(' '); } builder.appendHourOfDay(2); builder.appendLiteral(':'); builder.appendMinuteOfHour(2); started = true; } if (started) { return datetime.toString(builder.toFormatter().withLocale(locale)); } else { return null; } }