< prev index next >
src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 88,97 ****
--- 88,98 ----
import java.time.chrono.Era;
import java.time.chrono.IsoChronology;
import java.time.format.DateTimeTextProvider.LocaleStore;
import java.time.temporal.ChronoField;
import java.time.temporal.IsoFields;
+ import java.time.temporal.JulianFields;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalField;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalQuery;
import java.time.temporal.ValueRange;
*** 1366,1375 ****
--- 1367,1377 ----
* u year year 2004; 04
* y year-of-era year 2004; 04
* D day-of-year number 189
* M/L month-of-year number/text 7; 07; Jul; July; J
* d day-of-month number 10
+ * g modified-julian-day number 2451334
*
* Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter
* Y week-based-year year 1996; 96
* w week-of-week-based-year number 27
* W week-of-month number 4
*** 1391,1403 ****
* N nano-of-day number 1234000000
*
* V time-zone ID zone-id America/Los_Angeles; Z; -08:30
* z time-zone name zone-name Pacific Standard Time; PST
* O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00;
! * X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
! * x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
! * Z zone-offset offset-Z +0000; -0800; -08:00;
*
* p pad next pad modifier 1
*
* ' escape for text delimiter
* '' single quote literal '
--- 1393,1405 ----
* N nano-of-day number 1234000000
*
* V time-zone ID zone-id America/Los_Angeles; Z; -08:30
* z time-zone name zone-name Pacific Standard Time; PST
* O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00;
! * X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15
! * x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15
! * Z zone-offset offset-Z +0000; -0800; -08:00
*
* p pad next pad modifier 1
*
* ' escape for text delimiter
* '' single quote literal '
*** 1420,1460 ****
* GG 2 appendText(ChronoField.ERA, TextStyle.SHORT)
* GGG 3 appendText(ChronoField.ERA, TextStyle.SHORT)
* GGGG 4 appendText(ChronoField.ERA, TextStyle.FULL)
* GGGGG 5 appendText(ChronoField.ERA, TextStyle.NARROW)
*
! * u 1 appendValue(ChronoField.YEAR, 1, 19, SignStyle.NORMAL);
! * uu 2 appendValueReduced(ChronoField.YEAR, 2, 2000);
! * uuu 3 appendValue(ChronoField.YEAR, 3, 19, SignStyle.NORMAL);
! * u..u 4..n appendValue(ChronoField.YEAR, n, 19, SignStyle.EXCEEDS_PAD);
! * y 1 appendValue(ChronoField.YEAR_OF_ERA, 1, 19, SignStyle.NORMAL);
! * yy 2 appendValueReduced(ChronoField.YEAR_OF_ERA, 2, 2000);
! * yyy 3 appendValue(ChronoField.YEAR_OF_ERA, 3, 19, SignStyle.NORMAL);
! * y..y 4..n appendValue(ChronoField.YEAR_OF_ERA, n, 19, SignStyle.EXCEEDS_PAD);
* Y 1 append special localized WeekFields element for numeric week-based-year
! * YY 2 append special localized WeekFields element for reduced numeric week-based-year 2 digits;
! * YYY 3 append special localized WeekFields element for numeric week-based-year (3, 19, SignStyle.NORMAL);
! * Y..Y 4..n append special localized WeekFields element for numeric week-based-year (n, 19, SignStyle.EXCEEDS_PAD);
*
! * Q 1 appendValue(IsoFields.QUARTER_OF_YEAR);
! * QQ 2 appendValue(IsoFields.QUARTER_OF_YEAR, 2);
* QQQ 3 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT)
* QQQQ 4 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL)
* QQQQQ 5 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW)
! * q 1 appendValue(IsoFields.QUARTER_OF_YEAR);
! * qq 2 appendValue(IsoFields.QUARTER_OF_YEAR, 2);
* qqq 3 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT_STANDALONE)
* qqqq 4 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL_STANDALONE)
* qqqqq 5 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW_STANDALONE)
*
! * M 1 appendValue(ChronoField.MONTH_OF_YEAR);
! * MM 2 appendValue(ChronoField.MONTH_OF_YEAR, 2);
* MMM 3 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
* MMMM 4 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL)
* MMMMM 5 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW)
! * L 1 appendValue(ChronoField.MONTH_OF_YEAR);
! * LL 2 appendValue(ChronoField.MONTH_OF_YEAR, 2);
* LLL 3 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT_STANDALONE)
* LLLL 4 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL_STANDALONE)
* LLLLL 5 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW_STANDALONE)
*
* w 1 append special localized WeekFields element for numeric week-of-year
--- 1422,1462 ----
* GG 2 appendText(ChronoField.ERA, TextStyle.SHORT)
* GGG 3 appendText(ChronoField.ERA, TextStyle.SHORT)
* GGGG 4 appendText(ChronoField.ERA, TextStyle.FULL)
* GGGGG 5 appendText(ChronoField.ERA, TextStyle.NARROW)
*
! * u 1 appendValue(ChronoField.YEAR, 1, 19, SignStyle.NORMAL)
! * uu 2 appendValueReduced(ChronoField.YEAR, 2, 2000)
! * uuu 3 appendValue(ChronoField.YEAR, 3, 19, SignStyle.NORMAL)
! * u..u 4..n appendValue(ChronoField.YEAR, n, 19, SignStyle.EXCEEDS_PAD)
! * y 1 appendValue(ChronoField.YEAR_OF_ERA, 1, 19, SignStyle.NORMAL)
! * yy 2 appendValueReduced(ChronoField.YEAR_OF_ERA, 2, 2000)
! * yyy 3 appendValue(ChronoField.YEAR_OF_ERA, 3, 19, SignStyle.NORMAL)
! * y..y 4..n appendValue(ChronoField.YEAR_OF_ERA, n, 19, SignStyle.EXCEEDS_PAD)
* Y 1 append special localized WeekFields element for numeric week-based-year
! * YY 2 append special localized WeekFields element for reduced numeric week-based-year 2 digits
! * YYY 3 append special localized WeekFields element for numeric week-based-year (3, 19, SignStyle.NORMAL)
! * Y..Y 4..n append special localized WeekFields element for numeric week-based-year (n, 19, SignStyle.EXCEEDS_PAD)
*
! * Q 1 appendValue(IsoFields.QUARTER_OF_YEAR)
! * QQ 2 appendValue(IsoFields.QUARTER_OF_YEAR, 2)
* QQQ 3 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT)
* QQQQ 4 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL)
* QQQQQ 5 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW)
! * q 1 appendValue(IsoFields.QUARTER_OF_YEAR)
! * qq 2 appendValue(IsoFields.QUARTER_OF_YEAR, 2)
* qqq 3 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.SHORT_STANDALONE)
* qqqq 4 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.FULL_STANDALONE)
* qqqqq 5 appendText(IsoFields.QUARTER_OF_YEAR, TextStyle.NARROW_STANDALONE)
*
! * M 1 appendValue(ChronoField.MONTH_OF_YEAR)
! * MM 2 appendValue(ChronoField.MONTH_OF_YEAR, 2)
* MMM 3 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
* MMMM 4 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL)
* MMMMM 5 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW)
! * L 1 appendValue(ChronoField.MONTH_OF_YEAR)
! * LL 2 appendValue(ChronoField.MONTH_OF_YEAR, 2)
* LLL 3 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT_STANDALONE)
* LLLL 4 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.FULL_STANDALONE)
* LLLLL 5 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW_STANDALONE)
*
* w 1 append special localized WeekFields element for numeric week-of-year
*** 1464,1473 ****
--- 1466,1476 ----
* dd 2 appendValue(ChronoField.DAY_OF_MONTH, 2)
* D 1 appendValue(ChronoField.DAY_OF_YEAR)
* DD 2 appendValue(ChronoField.DAY_OF_YEAR, 2)
* DDD 3 appendValue(ChronoField.DAY_OF_YEAR, 3)
* F 1 appendValue(ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH)
+ * g..g 1..n appendValue(JulianFields.MODIFIED_JULIAN_DAY, n, 19, SignStyle.NORMAL)
* E 1 appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
* EE 2 appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
* EEE 3 appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT)
* EEEE 4 appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL)
* EEEEE 5 appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW)
*** 1522,1533 ****
* <p>
* <b>Zone offset</b>: Pattern letters to output {@code ZoneOffset}.
* <pre>
* Pattern Count Equivalent builder methods
* ------- ----- --------------------------
! * O 1 appendLocalizedOffsetPrefixed(TextStyle.SHORT);
! * OOOO 4 appendLocalizedOffsetPrefixed(TextStyle.FULL);
* X 1 appendOffset("+HHmm","Z")
* XX 2 appendOffset("+HHMM","Z")
* XXX 3 appendOffset("+HH:MM","Z")
* XXXX 4 appendOffset("+HHMMss","Z")
* XXXXX 5 appendOffset("+HH:MM:ss","Z")
--- 1525,1536 ----
* <p>
* <b>Zone offset</b>: Pattern letters to output {@code ZoneOffset}.
* <pre>
* Pattern Count Equivalent builder methods
* ------- ----- --------------------------
! * O 1 appendLocalizedOffsetPrefixed(TextStyle.SHORT)
! * OOOO 4 appendLocalizedOffsetPrefixed(TextStyle.FULL)
* X 1 appendOffset("+HHmm","Z")
* XX 2 appendOffset("+HHMM","Z")
* XXX 3 appendOffset("+HH:MM","Z")
* XXXX 4 appendOffset("+HHMMss","Z")
* XXXXX 5 appendOffset("+HH:MM:ss","Z")
*** 1537,1547 ****
* xxxx 4 appendOffset("+HHMMss","+0000")
* xxxxx 5 appendOffset("+HH:MM:ss","+00:00")
* Z 1 appendOffset("+HHMM","+0000")
* ZZ 2 appendOffset("+HHMM","+0000")
* ZZZ 3 appendOffset("+HHMM","+0000")
! * ZZZZ 4 appendLocalizedOffset(TextStyle.FULL);
* ZZZZZ 5 appendOffset("+HH:MM:ss","Z")
* </pre>
* <p>
* <b>Modifiers</b>: Pattern letters that modify the rest of the pattern:
* <pre>
--- 1540,1550 ----
* xxxx 4 appendOffset("+HHMMss","+0000")
* xxxxx 5 appendOffset("+HH:MM:ss","+00:00")
* Z 1 appendOffset("+HHMM","+0000")
* ZZ 2 appendOffset("+HHMM","+0000")
* ZZZ 3 appendOffset("+HHMM","+0000")
! * ZZZZ 4 appendLocalizedOffset(TextStyle.FULL)
* ZZZZZ 5 appendOffset("+HH:MM:ss","Z")
* </pre>
* <p>
* <b>Modifiers</b>: Pattern letters that modify the rest of the pattern:
* <pre>
*** 1819,1828 ****
--- 1822,1834 ----
appendValue(field, count);
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
+ case 'g':
+ appendValue(field, count, 19, SignStyle.NORMAL);
+ break;
default:
if (count == 1) {
appendValue(field);
} else {
appendValue(field, count);
*** 1857,1877 ****
FIELD_MAP.put('s', ChronoField.SECOND_OF_MINUTE); // SDF, LDML
FIELD_MAP.put('S', ChronoField.NANO_OF_SECOND); // LDML (SDF uses milli-of-second number)
FIELD_MAP.put('A', ChronoField.MILLI_OF_DAY); // LDML
FIELD_MAP.put('n', ChronoField.NANO_OF_SECOND); // 310 (proposed for LDML)
FIELD_MAP.put('N', ChronoField.NANO_OF_DAY); // 310 (proposed for LDML)
// 310 - z - time-zone names, matches LDML and SimpleDateFormat 1 to 4
// 310 - Z - matches SimpleDateFormat and LDML
// 310 - V - time-zone id, matches LDML
// 310 - p - prefix for padding
// 310 - X - matches LDML, almost matches SDF for 1, exact match 2&3, extended 4&5
// 310 - x - matches LDML
// 310 - w, W, and Y are localized forms matching LDML
// LDML - U - cycle year name, not supported by 310 yet
// LDML - l - deprecated
// LDML - j - not relevant
- // LDML - g - modified-julian-day
// LDML - v,V - extended time-zone names
}
//-----------------------------------------------------------------------
/**
--- 1863,1883 ----
FIELD_MAP.put('s', ChronoField.SECOND_OF_MINUTE); // SDF, LDML
FIELD_MAP.put('S', ChronoField.NANO_OF_SECOND); // LDML (SDF uses milli-of-second number)
FIELD_MAP.put('A', ChronoField.MILLI_OF_DAY); // LDML
FIELD_MAP.put('n', ChronoField.NANO_OF_SECOND); // 310 (proposed for LDML)
FIELD_MAP.put('N', ChronoField.NANO_OF_DAY); // 310 (proposed for LDML)
+ FIELD_MAP.put('g', JulianFields.MODIFIED_JULIAN_DAY);
// 310 - z - time-zone names, matches LDML and SimpleDateFormat 1 to 4
// 310 - Z - matches SimpleDateFormat and LDML
// 310 - V - time-zone id, matches LDML
// 310 - p - prefix for padding
// 310 - X - matches LDML, almost matches SDF for 1, exact match 2&3, extended 4&5
// 310 - x - matches LDML
// 310 - w, W, and Y are localized forms matching LDML
// LDML - U - cycle year name, not supported by 310 yet
// LDML - l - deprecated
// LDML - j - not relevant
// LDML - v,V - extended time-zone names
}
//-----------------------------------------------------------------------
/**
< prev index next >