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

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

Introduction

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

Prototype

public DateTimeFormatterBuilder appendClockhourOfDay(int minDigits) 

Source Link

Document

Instructs the printer to emit a numeric clockhourOfDay 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;
            }//  w w  w.  j  a  v  a  2  s .c om
            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 www  .j a  v a  2 s .co  m*/
            escaped = false;
        } else if (character == '%') {
            escaped = true;
        } else {
            builder.appendLiteral(character);
        }
    }

    return builder.toFormatter();
}