Example usage for org.joda.time.format DateTimeFormatterBuilder appendMillisOfSecond

List of usage examples for org.joda.time.format DateTimeFormatterBuilder appendMillisOfSecond

Introduction

In this page you can find the example usage for org.joda.time.format DateTimeFormatterBuilder appendMillisOfSecond.

Prototype

public DateTimeFormatterBuilder appendMillisOfSecond(int minDigits) 

Source Link

Document

Instructs the printer to emit a numeric millisOfSecond field.

Usage

From source file:com.facebook.presto.operator.scalar.DateTimeFunctions.java

License:Apache License

@SuppressWarnings("fallthrough")
public static DateTimeFormatter createDateTimeFormatter(Slice format) {
    DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();

    String formatString = format.toString(Charsets.UTF_8);
    boolean escaped = false;
    for (int i = 0; i < format.length(); i++) {
        char character = formatString.charAt(i);

        if (escaped) {
            switch (character) {
            case 'a': // %a Abbreviated weekday name (Sun..Sat)
                builder.appendDayOfWeekShortText();
                break;
            case 'b': // %b Abbreviated month name (Jan..Dec)
                builder.appendMonthOfYearShortText();
                break;
            case 'c': // %c Month, numeric (0..12)
                builder.appendMonthOfYear(1);
                break;
            case 'd': // %d Day of the month, numeric (00..31)
                builder.appendDayOfMonth(2);
                break;
            case 'e': // %e Day of the month, numeric (0..31)
                builder.appendDayOfMonth(1);
                break;
            case 'f': // %f Microseconds (000000..999999)
                builder.appendMillisOfSecond(6);
                break;
            case 'H': // %H Hour (00..23)
                builder.appendHourOfDay(2);
                break;
            case 'h': // %h Hour (01..12)
            case 'I': // %I Hour (01..12)
                builder.appendClockhourOfHalfday(2);
                break;
            case 'i': // %i Minutes, numeric (00..59)
                builder.appendMinuteOfHour(2);
                break;
            case 'j': // %j Day of year (001..366)
                builder.appendDayOfYear(3);
                break;
            case 'k': // %k Hour (0..23)
                builder.appendClockhourOfDay(1);
                break;
            case 'l': // %l Hour (1..12)
                builder.appendClockhourOfHalfday(1);
                break;
            case 'M': // %M Month name (January..December)
                builder.appendMonthOfYearText();
                break;
            case 'm': // %m Month, numeric (00..12)
                builder.appendMonthOfYear(2);
                break;
            case 'p': // %p AM or PM
                builder.appendHalfdayOfDayText();
                break;
            case 'r': // %r Time, 12-hour (hh:mm:ss followed by AM or PM)
                builder.appendClockhourOfHalfday(2).appendLiteral(':').appendMinuteOfHour(2).appendLiteral(':')
                        .appendSecondOfMinute(2).appendLiteral(' ').appendHalfdayOfDayText();
                break;
            case 'S': // %S Seconds (00..59)
            case 's': // %s Seconds (00..59)
                builder.appendSecondOfMinute(2);
                break;
            case 'T': // %T Time, 24-hour (hh:mm:ss)
                builder.appendHourOfDay(2).appendLiteral(':').appendMinuteOfHour(2).appendLiteral(':')
                        .appendSecondOfMinute(2);
                break;
            case 'v': // %v Week (01..53), where Monday is the first day of the week; used with %x
                builder.appendWeekOfWeekyear(2);
                break;
            case 'x': // %x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
                builder.appendWeekyear(4, 4);
                break;
            case 'W': // %W Weekday name (Sunday..Saturday)
                builder.appendDayOfWeekText();
                break;
            case 'w': // %w Day of the week (0=Sunday..6=Saturday)
                builder.appendDayOfWeek(1);
                break;
            case 'Y': // %Y Year, numeric, four digits
                builder.appendYear(4, 4);
                break;
            case 'y': // %y Year, numeric (two digits)
                builder.appendYearOfCentury(2, 2);
                break;
            case 'U': // %U Week (00..53), where Sunday is the first day of the week
            case 'u': // %u Week (00..53), where Monday is the first day of the week
            case 'V': // %V Week (01..53), where Sunday is the first day of the week; used with %X
            case 'X': // %X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
            case 'D': // %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, )
                throw new PrestoException(INVALID_FUNCTION_ARGUMENT.toErrorCode(),
                        String.format("%%%s not supported in date format string", character));
            case '%': // %% A literal %? character
                builder.appendLiteral('%');
                break;
            default: // %<x> The literal character represented by <x>
                builder.appendLiteral(character);
                break;
            }//from   w  w w.j  a  v a2 s  .  co  m
            escaped = false;
        } else if (character == '%') {
            escaped = true;
        } else {
            builder.appendLiteral(character);
        }
    }

    try {
        return builder.toFormatter();
    } catch (UnsupportedOperationException e) {
        throw new PrestoException(INVALID_FUNCTION_ARGUMENT.toErrorCode(), e);
    }
}

From source file:com.facebook.presto.operator.scalar.UnixTimeFunctions.java

License:Apache License

@SuppressWarnings("fallthrough")
public static DateTimeFormatter createDateTimeFormatter(Slice format) {
    DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();

    String formatString = format.toString(Charsets.UTF_8);
    boolean escaped = false;
    for (int i = 0; i < format.length(); i++) {
        char character = formatString.charAt(i);

        if (escaped) {
            switch (character) {
            case 'a': // %a Abbreviated weekday name (Sun..Sat)
                builder.appendDayOfWeekShortText();
                break;
            case 'b': // %b Abbreviated month name (Jan..Dec)
                builder.appendMonthOfYearShortText();
                break;
            case 'c': // %c Month, numeric (0..12)
                builder.appendMonthOfYear(1);
                break;
            case 'd': // %d Day of the month, numeric (00..31)
                builder.appendDayOfMonth(2);
                break;
            case 'e': // %e Day of the month, numeric (0..31)
                builder.appendDayOfMonth(1);
                break;
            case 'f': // %f Microseconds (000000..999999)
                builder.appendMillisOfSecond(6);
                break;
            case 'H': // %H Hour (00..23)
                builder.appendHourOfDay(2);
                break;
            case 'h': // %h Hour (01..12)
            case 'I': // %I Hour (01..12)
                builder.appendClockhourOfHalfday(2);
                break;
            case 'i': // %i Minutes, numeric (00..59)
                builder.appendMinuteOfHour(2);
                break;
            case 'j': // %j Day of year (001..366)
                builder.appendDayOfYear(3);
                break;
            case 'k': // %k Hour (0..23)
                builder.appendClockhourOfDay(1);
                break;
            case 'l': // %l Hour (1..12)
                builder.appendClockhourOfHalfday(1);
                break;
            case 'M': // %M Month name (January..December)
                builder.appendMonthOfYearText();
                break;
            case 'm': // %m Month, numeric (00..12)
                builder.appendMonthOfYear(2);
                break;
            case 'p': // %p AM or PM
                builder.appendHalfdayOfDayText();
                break;
            case 'r': // %r Time, 12-hour (hh:mm:ss followed by AM or PM)
                builder.appendClockhourOfHalfday(2).appendLiteral(':').appendMinuteOfHour(2).appendLiteral(':')
                        .appendSecondOfMinute(2).appendLiteral(' ').appendHalfdayOfDayText();
                break;
            case 'S': // %S Seconds (00..59)
            case 's': // %s Seconds (00..59)
                builder.appendSecondOfMinute(2);
                break;
            case 'T': // %T Time, 24-hour (hh:mm:ss)
                builder.appendHourOfDay(2).appendLiteral(':').appendMinuteOfHour(2).appendLiteral(':')
                        .appendSecondOfMinute(2);
                break;
            case 'v': // %v Week (01..53), where Monday is the first day of the week; used with %x
                builder.appendWeekOfWeekyear(2);
                break;
            case 'W': // %W Weekday name (Sunday..Saturday)
                builder.appendDayOfWeekText();
                break;
            case 'w': // %w Day of the week (0=Sunday..6=Saturday)
                builder.appendDayOfWeek(1);
                break;
            case 'Y': // %Y Year, numeric, four digits
                builder.appendYear(4, 4);
                break;
            case 'y': // %y Year, numeric (two digits)
                builder.appendYearOfCentury(2, 2);
                break;
            case 'U': // %U Week (00..53), where Sunday is the first day of the week
            case 'u': // %u Week (00..53), where Monday is the first day of the week
            case 'V': // %V Week (01..53), where Sunday is the first day of the week; used with %X
            case 'X': // %X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
            case 'x': // %x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
            case 'D': // %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, )
                throw new UnsupportedOperationException(
                        String.format("%%%s not supported in date format string", character));
            case '%': // %% A literal %? character
                builder.appendLiteral('%');
                break;
            default: // %<x> The literal character represented by <x>
                builder.appendLiteral(character);
                break;
            }/*from   w  ww. j  a  va  2  s .  c o m*/
            escaped = false;
        } else if (character == '%') {
            escaped = true;
        } else {
            builder.appendLiteral(character);
        }
    }

    return builder.toFormatter();
}

From source file:org.codelibs.elasticsearch.common.joda.StrictISODateTimeFormat.java

License:Apache License

/**
 * Adds the time fields to the builder.// w  w w. ja va2s  .c o m
 * Specification reference: 5.3.1.
 *
 * @param bld  the builder
 * @param fields  the fields
 * @param extended  whether to use the extended format
 * @param strictISO  whether to be strict
 * @param reducedPrec  whether the date was reduced precision
 * @param datePresent  whether there was a date
 * @since 1.1
 */
private static void time(DateTimeFormatterBuilder bld, Collection<DateTimeFieldType> fields, boolean extended,
        boolean strictISO, boolean reducedPrec, boolean datePresent) {

    boolean hour = fields.remove(DateTimeFieldType.hourOfDay());
    boolean minute = fields.remove(DateTimeFieldType.minuteOfHour());
    boolean second = fields.remove(DateTimeFieldType.secondOfMinute());
    boolean milli = fields.remove(DateTimeFieldType.millisOfSecond());
    if (!hour && !minute && !second && !milli) {
        return;
    }
    if (hour || minute || second || milli) {
        if (strictISO && reducedPrec) {
            throw new IllegalArgumentException(
                    "No valid ISO8601 format for fields because Date was reduced precision: " + fields);
        }
        if (datePresent) {
            bld.appendLiteral('T');
        }
    }
    if (hour && minute && second || (hour && !second && !milli)) {
        // OK - HMSm/HMS/HM/H - valid in combination with date
    } else {
        if (strictISO && datePresent) {
            throw new IllegalArgumentException(
                    "No valid ISO8601 format for fields because Time was truncated: " + fields);
        }
        if (!hour && (minute && second || (minute && !milli) || second)) {
            // OK - MSm/MS/M/Sm/S - valid ISO formats
        } else {
            if (strictISO) {
                throw new IllegalArgumentException("No valid ISO8601 format for fields: " + fields);
            }
        }
    }
    if (hour) {
        bld.appendHourOfDay(2);
    } else if (minute || second || milli) {
        bld.appendLiteral('-');
    }
    if (extended && hour && minute) {
        bld.appendLiteral(':');
    }
    if (minute) {
        bld.appendMinuteOfHour(2);
    } else if (second || milli) {
        bld.appendLiteral('-');
    }
    if (extended && minute && second) {
        bld.appendLiteral(':');
    }
    if (second) {
        bld.appendSecondOfMinute(2);
    } else if (milli) {
        bld.appendLiteral('-');
    }
    if (milli) {
        bld.appendLiteral('.');
        bld.appendMillisOfSecond(3);
    }
}