< prev index next >

src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java

Print this page




1462      *    qqq     3      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT_STANDALONE)
1463      *    qqqq    4      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL_STANDALONE)
1464      *    qqqqq   5      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW_STANDALONE)
1465      *
1466      *    M       1      appendValue(ChronoField.MONTH_OF_YEAR)
1467      *    MM      2      appendValue(ChronoField.MONTH_OF_YEAR, 2)
1468      *    MMM     3      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
1469      *    MMMM    4      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL)
1470      *    MMMMM   5      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW)
1471      *    L       1      appendValue(ChronoField.MONTH_OF_YEAR)
1472      *    LL      2      appendValue(ChronoField.MONTH_OF_YEAR, 2)
1473      *    LLL     3      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT_STANDALONE)
1474      *    LLLL    4      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL_STANDALONE)
1475      *    LLLLL   5      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW_STANDALONE)
1476      *
1477      *    w       1      append special localized WeekFields element for numeric week-of-year
1478      *    ww      2      append special localized WeekFields element for numeric week-of-year, zero-padded
1479      *    W       1      append special localized WeekFields element for numeric week-of-month
1480      *    d       1      appendValue(ChronoField.DAY_OF_MONTH)
1481      *    dd      2      appendValue(ChronoField.DAY_OF_MONTH, 2)
1482      *    D       1      appendValue(ChronoField.DAY_OF_YEAR)
1483      *    DD      2      appendValue(ChronoField.DAY_OF_YEAR, 2)
1484      *    DDD     3      appendValue(ChronoField.DAY_OF_YEAR, 3)
1485      *    F       1      appendValue(ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH)
1486      *    g..g    1..n   appendValue(JulianFields.MODIFIED_JULIAN_DAY, n, 19, SignStyle.NORMAL)
1487      *    E       1      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1488      *    EE      2      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1489      *    EEE     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1490      *    EEEE    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL)
1491      *    EEEEE   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW)
1492      *    e       1      append special localized WeekFields element for numeric day-of-week
1493      *    ee      2      append special localized WeekFields element for numeric day-of-week, zero-padded
1494      *    eee     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1495      *    eeee    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL)
1496      *    eeeee   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW)
1497      *    c       1      append special localized WeekFields element for numeric day-of-week
1498      *    ccc     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT_STANDALONE)
1499      *    cccc    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL_STANDALONE)
1500      *    ccccc   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW_STANDALONE)
1501      * </pre>
1502      * <p>
1503      * <b>Time fields</b>: Pattern letters to output a time.
1504      * <pre>


1814                 } else {
1815                     throw new IllegalArgumentException("Too many pattern letters: " + cur);
1816                 }
1817                 break;
1818             case 'd':
1819             case 'h':
1820             case 'H':
1821             case 'k':
1822             case 'K':
1823             case 'm':
1824             case 's':
1825                 if (count == 1) {
1826                     appendValue(field);
1827                 } else if (count == 2) {
1828                     appendValue(field, count);
1829                 } else {
1830                     throw new IllegalArgumentException("Too many pattern letters: " + cur);
1831                 }
1832                 break;
1833             case 'D':
1834                 if (count == 1) {
1835                     appendValue(field);
1836                 } else if (count <= 3) {
1837                     appendValue(field, count);
1838                 } else {
1839                     throw new IllegalArgumentException("Too many pattern letters: " + cur);


1840                 }
1841                 break;
1842             case 'g':
1843                 appendValue(field, count, 19, SignStyle.NORMAL);
1844                 break;
1845             default:
1846                 if (count == 1) {
1847                     appendValue(field);
1848                 } else {
1849                     appendValue(field, count);
1850                 }
1851                 break;
1852         }
1853     }
1854 
1855     /** Map of letters to fields. */
1856     private static final Map<Character, TemporalField> FIELD_MAP = new HashMap<>();
1857     static {
1858         // SDF = SimpleDateFormat
1859         FIELD_MAP.put('G', ChronoField.ERA);                       // SDF, LDML (different to both for 1/2 chars)




1462      *    qqq     3      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT_STANDALONE)
1463      *    qqqq    4      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL_STANDALONE)
1464      *    qqqqq   5      appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW_STANDALONE)
1465      *
1466      *    M       1      appendValue(ChronoField.MONTH_OF_YEAR)
1467      *    MM      2      appendValue(ChronoField.MONTH_OF_YEAR, 2)
1468      *    MMM     3      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
1469      *    MMMM    4      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL)
1470      *    MMMMM   5      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW)
1471      *    L       1      appendValue(ChronoField.MONTH_OF_YEAR)
1472      *    LL      2      appendValue(ChronoField.MONTH_OF_YEAR, 2)
1473      *    LLL     3      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT_STANDALONE)
1474      *    LLLL    4      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL_STANDALONE)
1475      *    LLLLL   5      appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW_STANDALONE)
1476      *
1477      *    w       1      append special localized WeekFields element for numeric week-of-year
1478      *    ww      2      append special localized WeekFields element for numeric week-of-year, zero-padded
1479      *    W       1      append special localized WeekFields element for numeric week-of-month
1480      *    d       1      appendValue(ChronoField.DAY_OF_MONTH)
1481      *    dd      2      appendValue(ChronoField.DAY_OF_MONTH, 2)
1482      *    D..D    1..3   appendValue(ChronoField.DAY_OF_YEAR, n, 19, SignStyle.NORMAL)


1483      *    F       1      appendValue(ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH)
1484      *    g..g    1..n   appendValue(JulianFields.MODIFIED_JULIAN_DAY, n, 19, SignStyle.NORMAL)
1485      *    E       1      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1486      *    EE      2      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1487      *    EEE     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1488      *    EEEE    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL)
1489      *    EEEEE   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW)
1490      *    e       1      append special localized WeekFields element for numeric day-of-week
1491      *    ee      2      append special localized WeekFields element for numeric day-of-week, zero-padded
1492      *    eee     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
1493      *    eeee    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL)
1494      *    eeeee   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW)
1495      *    c       1      append special localized WeekFields element for numeric day-of-week
1496      *    ccc     3      appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT_STANDALONE)
1497      *    cccc    4      appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL_STANDALONE)
1498      *    ccccc   5      appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW_STANDALONE)
1499      * </pre>
1500      * <p>
1501      * <b>Time fields</b>: Pattern letters to output a time.
1502      * <pre>


1812                 } else {
1813                     throw new IllegalArgumentException("Too many pattern letters: " + cur);
1814                 }
1815                 break;
1816             case 'd':
1817             case 'h':
1818             case 'H':
1819             case 'k':
1820             case 'K':
1821             case 'm':
1822             case 's':
1823                 if (count == 1) {
1824                     appendValue(field);
1825                 } else if (count == 2) {
1826                     appendValue(field, count);
1827                 } else {
1828                     throw new IllegalArgumentException("Too many pattern letters: " + cur);
1829                 }
1830                 break;
1831             case 'D':
1832                 if (count > 3) {




1833                     throw new IllegalArgumentException("Too many pattern letters: " + cur);
1834                 } else {
1835                     appendValue(field, count, 19, SignStyle.NORMAL);
1836                 }
1837                 break;
1838             case 'g':
1839                 appendValue(field, count, 19, SignStyle.NORMAL);
1840                 break;
1841             default:
1842                 if (count == 1) {
1843                     appendValue(field);
1844                 } else {
1845                     appendValue(field, count);
1846                 }
1847                 break;
1848         }
1849     }
1850 
1851     /** Map of letters to fields. */
1852     private static final Map<Character, TemporalField> FIELD_MAP = new HashMap<>();
1853     static {
1854         // SDF = SimpleDateFormat
1855         FIELD_MAP.put('G', ChronoField.ERA);                       // SDF, LDML (different to both for 1/2 chars)


< prev index next >