Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class DateTimeFormatterBuilder extends Object
Это позволяет a DateTimeFormatter
создаваться. Все разовые датой средства форматирования создаются, в конечном счете используя этого разработчика.
Основные элементы разовых датой могут все быть добавлены:
Кроме того, любой из элементов может быть украшен, дополняя, или с пробелами или с любым другим символом.
Наконец, краткий образец, главным образом совместимый с java.text.SimpleDateFormat SimpleDateFormat
может использоваться, видеть appendPattern(String)
. Практически, это просто анализирует образец и вызывает другие методы на разработчике.
Конструктор и Описание |
---|
DateTimeFormatterBuilder()
Создает новый экземпляр разработчика.
|
Модификатор и Тип | Метод и Описание |
---|---|
DateTimeFormatterBuilder |
append(DateTimeFormatter formatter)
Добавляет все элементы средства форматирования разработчику.
|
DateTimeFormatterBuilder |
appendChronologyId()
Добавляет ID хронологии, такой как 'ISO' или 'ThaiBuddhist', к средству форматирования.
|
DateTimeFormatterBuilder |
appendChronologyText(TextStyle textStyle)
Добавляет имя хронологии к средству форматирования.
|
DateTimeFormatterBuilder |
appendFraction(TemporalField field, int minWidth, int maxWidth, boolean decimalPoint)
Добавляет дробное значение разового датой поля к средству форматирования.
|
DateTimeFormatterBuilder |
appendInstant()
Добавляет момент, используя ISO 8601 для средства форматирования, форматируя дробные цифры в группах три.
|
DateTimeFormatterBuilder |
appendInstant(int fractionalDigits)
Добавляет момент, используя ISO 8601 для средства форматирования с управлением числом дробных цифр.
|
DateTimeFormatterBuilder |
appendLiteral(char literal)
Добавляет символьный литерал к средству форматирования.
|
DateTimeFormatterBuilder |
appendLiteral(String literal)
Добавляет строковый литерал к средству форматирования.
|
DateTimeFormatterBuilder |
appendLocalized(FormatStyle dateStyle, FormatStyle timeStyle)
Добавляет локализованный разовый датой образец к средству форматирования.
|
DateTimeFormatterBuilder |
appendLocalizedOffset(TextStyle style)
Добавляет локализованное зональное смещение, такое как 'GMT+01:00', к средству форматирования.
|
DateTimeFormatterBuilder |
appendOffset(String pattern, String noOffsetText)
Добавляет зональное смещение, такое как '+01:00', к средству форматирования.
|
DateTimeFormatterBuilder |
appendOffsetId()
Добавляет зональное смещение, такое как '+01:00', к средству форматирования.
|
DateTimeFormatterBuilder |
appendOptional(DateTimeFormatter formatter)
Добавляет средство форматирования разработчику, который будет дополнительно форматировать/анализировать.
|
DateTimeFormatterBuilder |
appendPattern(String pattern)
Добавляет элементы, определенные указанным образцом разработчику.
|
DateTimeFormatterBuilder |
appendText(TemporalField field)
Добавляет текст разового датой поля к средству форматирования, используя полный стиль текста.
|
DateTimeFormatterBuilder |
appendText(TemporalField field, Map<Long,String> textLookup)
Добавляет текст разового датой поля к средству форматирования, используя указанную карту, чтобы предоставить текст.
|
DateTimeFormatterBuilder |
appendText(TemporalField field, TextStyle textStyle)
Добавляет текст разового датой поля к средству форматирования.
|
DateTimeFormatterBuilder |
appendValue(TemporalField field)
Добавляет значение разового датой поля к средству форматирования, используя нормальный выходной стиль.
|
DateTimeFormatterBuilder |
appendValue(TemporalField field, int width)
Добавляет значение разового датой поля к средству форматирования, используя фиксированный width, дополненный нулем подход.
|
DateTimeFormatterBuilder |
appendValue(TemporalField field, int minWidth, int maxWidth, SignStyle signStyle)
Добавляет значение разового датой поля к средству форматирования, обеспечивающему полный контроль над форматированием.
|
DateTimeFormatterBuilder |
appendValueReduced(TemporalField field, int width, int baseValue)
Добавляет уменьшенное значение разового датой поля с фиксированным width к средству форматирования.
|
DateTimeFormatterBuilder |
appendValueReduced(TemporalField field, int width, int maxWidth, int baseValue)
Добавляет уменьшенное значение разового датой поля с гибким width к средству форматирования.
|
DateTimeFormatterBuilder |
appendZoneId()
Добавляет ID часового пояса, такой как 'Европа/Париж' или '+02:00', к средству форматирования.
|
DateTimeFormatterBuilder |
appendZoneOrOffsetId()
Добавляет ID часового пояса, такой как 'Европа/Париж' или '+02:00', к средству форматирования, используя наилучший имеющийся зональный ID.
|
DateTimeFormatterBuilder |
appendZoneRegionId()
Добавляет ID области часового пояса, такой как 'Европа/Париж', к средству форматирования, отклоняя зональный ID, если это - a
ZoneOffset . |
DateTimeFormatterBuilder |
appendZoneText(TextStyle textStyle)
Добавляет имя часового пояса, такое как 'британское Летнее время', к средству форматирования.
|
DateTimeFormatterBuilder |
appendZoneText(TextStyle textStyle, Set<ZoneId> preferredZones)
Добавляет имя часового пояса, такое как 'британское Летнее время', к средству форматирования.
|
static String |
getLocalizedDateTimePattern(FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale locale)
Получает образец форматирования для даты и стили времени для локали и хронологии.
|
DateTimeFormatterBuilder |
optionalEnd()
Заканчивает дополнительный раздел.
|
DateTimeFormatterBuilder |
optionalStart()
Отметьте запуск дополнительного раздела.
|
DateTimeFormatterBuilder |
padNext(int padWidth)
Заставляет следующий добавленный принтер/синтаксический анализатор дополнять к фиксированному width, использующему пространство.
|
DateTimeFormatterBuilder |
padNext(int padWidth, char padChar)
Заставляет следующий добавленный принтер/синтаксический анализатор дополнять к фиксированному width.
|
DateTimeFormatterBuilder |
parseCaseInsensitive()
Изменяет стиль синтаксического анализа, чтобы быть нечувствительным к регистру для остатка от средства форматирования.
|
DateTimeFormatterBuilder |
parseCaseSensitive()
Изменяет стиль синтаксического анализа, чтобы быть чувствительным к регистру для остатка от средства форматирования.
|
DateTimeFormatterBuilder |
parseDefaulting(TemporalField field, long value)
Добавляет значение по умолчанию для поля к средству форматирования для использования в парсинге.
|
DateTimeFormatterBuilder |
parseLenient()
Изменяет стиль синтаксического анализа, чтобы быть снисходительным для остатка от средства форматирования.
|
DateTimeFormatterBuilder |
parseStrict()
Изменяет стиль синтаксического анализа, чтобы быть строгим для остатка от средства форматирования.
|
DateTimeFormatter |
toFormatter()
Завершает этого разработчика, создавая
DateTimeFormatter использование локали значения по умолчанию. |
DateTimeFormatter |
toFormatter(Locale locale)
Завершает этого разработчика, создавая
DateTimeFormatter использование указанной локали. |
public DateTimeFormatterBuilder()
public static String getLocalizedDateTimePattern(FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale locale)
dateStyle
- FormatStyle для датыtimeStyle
- FormatStyle в течение времениchrono
- Хронология, ненульlocale
- локаль, ненульIllegalArgumentException
- если и dateStyle и timeStyle являются нулемpublic DateTimeFormatterBuilder parseCaseSensitive()
Парсинг может быть чувствительным к регистру или нечувствительным - по умолчанию это является чувствительным к регистру. Этот метод позволяет установке чувствительности случая парсинга быть измененной.
Вызов этого метода изменяет состояние разработчика так, что, все последующие вызовы метода разработчика проанализируют текст в случае, если чувствительный режим. См. parseCaseInsensitive()
для противоположной установки. Синтаксический анализ чувствительные к регистру / нечувствительные методы можно вызвать в любой точке в разработчике, таким образом синтаксический анализатор, может подкачать между режимами парсинга случая многократно во время синтаксического анализа.
Так как значение по умолчанию является чувствительным к регистру, этот метод должен только использоваться после предыдущего звонка #parseCaseInsensitive
.
public DateTimeFormatterBuilder parseCaseInsensitive()
Парсинг может быть чувствительным к регистру или нечувствительным - по умолчанию это является чувствительным к регистру. Этот метод позволяет установке чувствительности случая парсинга быть измененной.
Вызов этого метода изменяет состояние разработчика так, что, все последующие вызовы метода разработчика проанализируют текст в случае, если нечувствительный режим. См. parseCaseSensitive()
для противоположной установки. Синтаксический анализ чувствительные к регистру / нечувствительные методы можно вызвать в любой точке в разработчике, таким образом синтаксический анализатор, может подкачать между режимами парсинга случая многократно во время синтаксического анализа.
public DateTimeFormatterBuilder parseStrict()
Парсинг может быть строгим или снисходительным - по умолчанию его строгое. Это управляет степенью гибкости в соответствии стили знака и текст.
Когда использующийся, этот метод изменяет парсинг, чтобы быть строгим от этой точки вперед. Как строгий значение по умолчанию, это обычно только необходимо после вызова parseLenient()
. Изменение останется в силе до конца средства форматирования, которое в конечном счете создается или до parseLenient
вызывается.
public DateTimeFormatterBuilder parseLenient()
Парсинг может быть строгим или снисходительным - по умолчанию его строгое. Это управляет степенью гибкости в соответствии стили знака и текст. Приложения вызывая этот метод должны обычно также вызывать parseCaseInsensitive()
.
Когда использующийся, этот метод изменяет парсинг, чтобы быть снисходительным от этой точки вперед. Изменение останется в силе до конца средства форматирования, которое в конечном счете создается или до parseStrict
вызывается.
public DateTimeFormatterBuilder parseDefaulting(TemporalField field, long value)
Это добавляет инструкцию разработчику, чтобы ввести значение по умолчанию в проанализированный результат. Это особенно полезно в соединении с дополнительными частями средства форматирования.
Например, рассмотрите средство форматирования, которое анализирует год, сопровождаемый дополнительным месяцем, с дальнейшим дополнительным днем-месячного. Используя такое средство форматирования потребовал бы, чтобы код вызова проверил, был ли полная дата, месячная годом или только, год проанализирован. Этот метод может использоваться, чтобы принять значение по умолчанию месяц и день-месячного к заметному значению, такой как первый из месяца, позволяя код вызова всегда получить дату.
Во время форматирования этот метод не имеет никакого эффекта.
Во время парсинга осматривается текущее состояние синтаксического анализа. Если у указанного поля нет никакого присваиваемого значения, потому что оно не было проанализировано успешно в той точке, то указанное значение вводится в результат синтаксического анализа. Инжекция непосредственна, таким образом пара значения поля будет видима к любым последующим элементам в средстве форматирования. Также, этот метод обычно вызывают в конце разработчика.
field
- поле, чтобы принять значение по умолчанию значение, не нульvalue
- значение, чтобы принять значение по умолчанию поле кpublic DateTimeFormatterBuilder appendValue(TemporalField field)
Значение поля будет выведено во время формата. Если значение не может быть получено тогда, исключение будет выдано.
Значение будет напечатано согласно нормальному формату целочисленного значения. Только отрицательные числа будут подписаны. Никакое дополнение не будет добавлено.
Синтаксический анализатор для переменного значения width, такого как это обычно ведет себя жадно, требуя одной цифры, но принимая так много цифр насколько возможно. На это поведение может влиять 'смежный парсинг значения'. См. appendValue(java.time.temporal.TemporalField, int)
для полного изложения.
field
- поле, чтобы добавить, не нульpublic DateTimeFormatterBuilder appendValue(TemporalField field, int width)
Значение поля будет выведено во время формата. Если значение не может быть получено тогда, исключение будет выдано.
Значение будет дополнено нулем слева. Если размер значения означает, что это не может быть напечатано в пределах width тогда, исключение выдается. Если значение поля отрицательно тогда, исключение выдается во время форматирования.
Этот метод поддерживает специальный метод парсинга известного как 'смежный парсинг значения'. Этот метод решает проблему, где значение, переменный или фиксированный width, сопровождается одним или более значениями фиксированной длины. Стандартный синтаксический анализатор является жадным, и таким образом он обычно крал бы цифры, которые необходимы фиксированным синтаксическим анализаторам значения width, которые следуют за переменным width один.
Никакое действие не обязано инициировать 'смежный парсинг значения'. Когда звонок appendValue
делается, разработчик вводит смежное значение, анализирующее режим установки. Если сразу последующий вызов метода или запросы к тому же самому разработчику будут для фиксированного значения width, то синтаксический анализатор зарезервирует пространство так, чтобы фиксированные значения width могли быть проанализированы.
Например, рассмотреть builder.appendValue(YEAR).appendValue(MONTH_OF_YEAR, 2);
Год является переменным синтаксическим анализом width между 1 и 19 цифрами. Месяц является фиксированным синтаксическим анализом width 2 цифр. Поскольку они были сразу добавлены тому же самому разработчику после друг друга, синтаксический анализатор года зарезервирует две цифры в течение месяца, чтобы проанализировать. Таким образом текст '201106' правильно проанализирует к году 2011 и месяца 6. Без смежного парсинга значения год жадно проанализировал бы все шесть цифр и ничего не оставил бы в течение месяца.
Смежный парсинг значения применяется к каждому набору фиксированных не-отрицательных-величин width в синтаксическом анализаторе, которые сразу следуют за любым добрым переменным или фиксированным width имеющим значение. Вызов любого другого добавляет метод, закончит установку смежного парсинга значения. Таким образом, в маловероятном случае, что Вы должны избежать смежного поведения парсинга значения, просто добавьте appendValue
другому DateTimeFormatterBuilder
и добавьте это к этому разработчику.
Если смежный парсинг является активным, то парсинг должен соответствовать точно конкретное количество цифр и в строгих и в снисходительных режимах. Кроме того, никакой положительный или знак минус не разрешается.
field
- поле, чтобы добавить, не нульwidth
- width печатного поля, от 1 до 19IllegalArgumentException
- если width недопустимpublic DateTimeFormatterBuilder appendValue(TemporalField field, int minWidth, int maxWidth, SignStyle signStyle)
Значение поля будет выведено во время формата. Если значение не может быть получено тогда, исключение будет выдано.
Этот метод обеспечивает полный контроль над числовым форматированием, включая дополнение нуля и положительный / знак минус.
Синтаксический анализатор для переменного значения width, такого как это обычно ведет себя жадно, принимая так много цифр насколько возможно. На это поведение может влиять 'смежный парсинг значения'. См. appendValue(java.time.temporal.TemporalField, int)
для полного изложения.
В строгом режиме парсинга минимальное число проанализированных цифр minWidth
и максимум maxWidth
. В снисходительном режиме парсинга минимальное число проанализированных цифр один, и максимум 19 (за исключением ограниченного смежным парсингом значения).
Если этот метод вызывается с равными минимальными и максимальными ширинами и стилем знака NOT_NEGATIVE
тогда это делегирует к appendValue(TemporalField,int)
. В этом сценарии там происходят форматирование и парсинг поведения, описанного.
field
- поле, чтобы добавить, не нульminWidth
- минимальное поле width печатного поля, от 1 до 19maxWidth
- максимальное поле width печатного поля, от 1 до 19signStyle
- положительный/отрицательный выходной стиль, не нульIllegalArgumentException
- если ширины недопустимыpublic DateTimeFormatterBuilder appendValueReduced(TemporalField field, int width, int baseValue)
Это обычно используется для форматирования и парсинга двух лет цифры. width
печатный и проанализированный width. baseValue
используется во время парсинга, чтобы определить допустимый диапазон.
Для того, чтобы отформатировать, width используется, чтобы определить число символов, чтобы отформатировать. Самые правые символы выводятся, чтобы соответствовать width, оставленный дополнение нулем.
Для строгого парсинга анализируется число символов, позволенных width. Для снисходительного парсинга число символов должно быть по крайней мере 1 и меньше чем 10. Если число проанализированных цифр равно width
и значение положительно, значение поля вычисляется, чтобы быть первым числом, больше чем или равный baseValue
с теми же самыми младшими значащими символами иначе проанализированное значение является значением поля. Это позволяет уменьшенному значению вводиться для значений в диапазоне baseValue и width, и абсолютные значения могут быть введены для значений вне диапазона.
Например, основное значение 1980
и width 2
будет иметь допустимые значения от 1980
к 2079
. Во время парсинга, текста "12"
приведет к значению 2012
поскольку это - значение в пределах диапазона, где последние два символа "12". Сравнитесь со снисходительным парсингом текста "1915"
это приведет к значению 1915
.
field
- поле, чтобы добавить, не нульwidth
- поле width печатного и проанализированного поля, от 1 до 10baseValue
- основное значение диапазона допустимых значенийIllegalArgumentException
- если width или основное значение недопустимыappendValueReduced(java.time.temporal.TemporalField, int, int, int)
public DateTimeFormatterBuilder appendValueReduced(TemporalField field, int width, int maxWidth, int baseValue)
Это обычно используется для форматирования и парсинга двух лет цифры, но учета значения года, чтобы быть до maxWidth.
Для того, чтобы отформатировать, width
и maxWidth
используются, чтобы определить число символов, чтобы отформатировать. Если значение поля в пределах диапазона baseValue
использование width
символы тогда уменьшенное значение форматируется иначе, значение является усеченным, чтобы соответствовать maxWidth
. Самые правые символы выводятся, чтобы соответствовать width, оставленный дополнение нулем.
Для строгого парсинга, числа символов, позволенных width
к maxWidth
анализируются. Для снисходительного парсинга число символов должно быть по крайней мере 1 и меньше чем 10. Если число проанализированных цифр равно width
и значение положительно, значение поля вычисляется, чтобы быть первым числом, больше чем или равный baseValue
с теми же самыми младшими значащими символами иначе проанализированное значение является значением поля. Это позволяет уменьшенному значению вводиться для значений в диапазоне baseValue и width, и абсолютные значения могут быть введены для значений вне диапазона.
Например, основное значение 1980
и width 2
будет иметь допустимые значения от 1980
к 2079
. Во время парсинга, текста "12"
приведет к значению 2012
поскольку это - значение в пределах диапазона, где последние два символа "12". Сравнитесь с парсингом текста "1915"
это приведет к значению 1915
.
field
- поле, чтобы добавить, не нульwidth
- поле width печатного и проанализированного поля, от 1 до 10maxWidth
- максимальное поле width печатного поля, от 1 до 10baseValue
- основное значение диапазона допустимых значенийIllegalArgumentException
- если width или основное значение недопустимыpublic DateTimeFormatterBuilder appendFraction(TemporalField field, int minWidth, int maxWidth, boolean decimalPoint)
Дробное значение поля будет выведено включая предыдущую десятичную точку. Предыдущее значение не выводится. Например, второе-минутного значение 15 было бы выведено как .25
.
width печатной части можно управлять. Обнуление минимального width не заставит вывода быть сгенерированным. У печатной части будет минимальный width необходимым между минимальными и максимальными ширинами - конечные нули опускаются. Никакое округление не происходит из-за максимального width - цифры просто отбрасываются.
Анализируя в строгом режиме, число проанализированных цифр должно быть между минимальным и максимальным width. Анализируя в снисходительном режиме, минимальный width, как полагают, является нулем, и максимум девять.
Если значение не может быть получено тогда, исключение будет выдано. Если значение будет отрицательно, то исключение будет выдано. Если у поля не будет фиксированного набора допустимых значений тогда, то исключение будет выдано. Если значение поля в разовом датой, которое будет напечатано, недопустимо, оно не может быть напечатано, и исключение будет выдано.
field
- поле, чтобы добавить, не нульminWidth
- минимальный width поля, исключая десятичную точку, от 0 до 9maxWidth
- максимальный width поля, исключая десятичную точку, от 1 до 9decimalPoint
- вывести ли локализованный символ десятичной точкиIllegalArgumentException
- если у поля есть переменный набор допустимых значений, или любой width недопустимpublic DateTimeFormatterBuilder appendText(TemporalField field)
Текст поля будет выведен во время формата. Значение должно быть в пределах допустимого диапазона поля. Если значение не может быть получено тогда, исключение будет выдано. Если у поля не будет никакого текстового представления, то числовое значение будет использоваться.
Значение будет напечатано согласно нормальному формату целочисленного значения. Только отрицательные числа будут подписаны. Никакое дополнение не будет добавлено.
field
- поле, чтобы добавить, не нульpublic DateTimeFormatterBuilder appendText(TemporalField field, TextStyle textStyle)
Текст поля будет выведен во время формата. Значение должно быть в пределах допустимого диапазона поля. Если значение не может быть получено тогда, исключение будет выдано. Если у поля не будет никакого текстового представления, то числовое значение будет использоваться.
Значение будет напечатано согласно нормальному формату целочисленного значения. Только отрицательные числа будут подписаны. Никакое дополнение не будет добавлено.
field
- поле, чтобы добавить, не нульtextStyle
- стиль текста, чтобы использовать, не нульpublic DateTimeFormatterBuilder appendText(TemporalField field, Map<Long,String> textLookup)
Стандартный текст выводящие методы использует локализованный текст в JDK. Этот метод позволяет тому тексту быть определенным непосредственно. Предоставленная карта не проверяется разработчиком, чтобы гарантировать, что форматирование или парсинг возможны, таким образом недопустимая карта может бросить ошибку во время более позднего использования.
Предоставление карты текста обеспечивает значительную гибкость в форматировании и парсинге. Например, унаследованное приложение могло бы потребовать или предоставить месяцы года как "JNY", "FBY", "MCH" и т.д. Они не соответствуют стандартный набор текста для локализованных имен месяца. Используя этот метод, может быть создана карта, который определяет соединение между каждым значением и текстом:
Map<Long, String> map = new HashMap<>(); map.put(1, "JNY"); map.put(2, "FBY"); map.put(3, "MCH"); ... builder.appendText(MONTH_OF_YEAR, map);
Другое использование могло бы быть должно вывести значение с суффиксом, такой как "1-ое", "2-ое", "3-ье", или как Римские цифры "I", "II", "III", "IV".
Во время форматирования значение получается и проверяло, что находится в допустимом диапазоне. Если текст не доступен для значения тогда, это выводится как число. Во время парсинга синтаксический анализатор будет соответствовать против карты текста и числовых значений.
field
- поле, чтобы добавить, не нульtextLookup
- карта от значения до текстаpublic DateTimeFormatterBuilder appendInstant()
У моментов есть фиксированный выходной формат. Они преобразовываются в разовое датой со смещенным зоной из UTC и отформатировали использование стандартного формата ISO 8601. С этим методом, форматируя nano-of-second выходной нуль, три, шесть или девять цифр цифр по мере необходимости. Локализованный десятичный стиль не используется.
Момент получается, используя INSTANT_SECONDS
и дополнительно (@code NANO_OF_SECOND). Значение INSTANT_SECONDS
может быть вне максимального диапазона LocalDateTime
.
Стиль преобразователя не имеет никакого эффекта на мгновенный парсинг. Время конца-дневного '24:00' обрабатывается как полночь в начале следующего дня. Время с секундой прыжка '23:59:59' обрабатывается до некоторой степени, см. DateTimeFormatter.parsedLeapSecond()
для полного изложения.
Альтернатива этому методу должна форматировать/анализировать момент как единственное значение секунд эпохи. Это достигается, используя appendValue(INSTANT_SECONDS)
.
public DateTimeFormatterBuilder appendInstant(int fractionalDigits)
У моментов есть фиксированный выходной формат, хотя этот метод обеспечивает некоторое управление дробными цифрами. Они преобразовываются в разовое датой со смещенным зоной из UTC и напечатали использование стандартного формата ISO 8601. Локализованный десятичный стиль не используется.
fractionalDigits
параметр позволяет выводу доли секунды управляться. Определение нуля не заставит дробных цифр быть выведенными. От 1 до 9 выведет увеличивающееся число цифр, используя нулевое дополнение права в случае необходимости. Специальное значение-1 используется, чтобы вывести так много цифр по мере необходимости, чтобы избежать любых конечных нулей.
Анализируя в строгом режиме, число проанализированных цифр должно соответствовать дробные цифры. Анализируя в снисходительном режиме, любое число дробных цифр от нуля до девять принимается.
Момент получается, используя INSTANT_SECONDS
и дополнительно (@code NANO_OF_SECOND). Значение INSTANT_SECONDS
может быть вне максимального диапазона LocalDateTime
.
Стиль преобразователя не имеет никакого эффекта на мгновенный парсинг. Время конца-дневного '24:00' обрабатывается как полночь в начале следующего дня. Время с секундой прыжка '23:59:59' обрабатывается до некоторой степени, см. DateTimeFormatter.parsedLeapSecond()
для полного изложения.
Альтернатива этому методу должна форматировать/анализировать момент как единственное значение секунд эпохи. Это достигается, используя appendValue(INSTANT_SECONDS)
.
fractionalDigits
- число цифр доли секунды, чтобы отформатировать с, от 0 до 9, или-1, чтобы использовать так много цифр по мере необходимостиpublic DateTimeFormatterBuilder appendOffsetId()
Это добавляет инструкцию, чтобы форматировать/анализировать ID смещения разработчику. Это эквивалентно вызову appendOffset("HH:MM:ss", "Z")
.
public DateTimeFormatterBuilder appendOffset(String pattern, String noOffsetText)
Это добавляет инструкцию, чтобы форматировать/анализировать ID смещения разработчику.
Во время форматирования смещение получается, используя механизм, эквивалентный запросам временного с TemporalQuery.offset()
. Это будет напечатано, используя формат, определенный ниже. Если смещение не может быть получено тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга смещение анализируется, используя формат, определенный ниже. Если смещение не может быть проанализировано тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Форматом смещения управляет образец, который должен быть одним из следующего:
+HH
- час только, игнорируя минуту и второй +HHmm
- час, с минутой если ненулевой, игнорируя второй, никакое двоеточие +HH:mm
- час, с минутой если ненулевой, игнорируя второй, с двоеточием +HHMM
- час и минута, игнорируя второй, никакое двоеточие +HH:MM
- час и минута, игнорируя второй, с двоеточием +HHMMss
- час и минута, со вторым если ненулевой, никаким двоеточием +HH:MM:ss
- час и минута, со вторым если ненулевой, с двоеточием +HHMMSS
- час, минута и во-вторых, никакое двоеточие +HH:MM:SS
- час, минута и во-вторых, с двоеточием "Никакое смещение" текст не управляет тем, какой текст печатается, когда общая сумма полей смещения, которые будут выведены, является нулем. Значениями в качестве примера был бы 'Z', '+00:00', 'UTC' или 'GMT'. Три формата принимаются для того, чтобы проанализировать UTC - "никакое смещение" текст, и плюс и минус версии нуля, определенного образцом.
pattern
- образец, чтобы использовать, не нульnoOffsetText
- текст, чтобы использовать, когда смещение является нулем, не нулемpublic DateTimeFormatterBuilder appendLocalizedOffset(TextStyle style)
Это добавляет локализованное зональное смещение разработчику, форматом локализованного смещения управляют указанным style
к этому методу:
full
- форматы с локализованным текстом смещения, такие как 'GMT, 2-разрядное поле часа и минуты, дополнительное второе поле если ненулевой, и двоеточие. short
- форматы с локализованным текстом смещения, такие как 'GMT, час без начального нуля, дополнительная 2-разрядная минута и второй если ненулевой, и двоеточие.
Во время форматирования смещение получается, используя механизм, эквивалентный запросам временного с TemporalQuery.offset()
. Если смещение не может быть получено тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга смещение анализируется, используя формат, определенный выше. Если смещение не может быть проанализировано тогда, исключение выдается, если раздел средства форматирования не дополнительный.
style
- стиль формата, чтобы использовать, не нульIllegalArgumentException
- если стиль ни один не full
ни short
public DateTimeFormatterBuilder appendZoneId()
Это добавляет инструкцию, чтобы форматировать/анализировать зональный ID разработчику. Зональный ID получается строгим способом, подходящим для ZonedDateTime
. В отличие от этого, OffsetDateTime
не имеет зонального ID подходящим для использования с этим методом, видят appendZoneOrOffsetId()
.
Во время форматирования зона получается, используя механизм, эквивалентный запросам временного с TemporalQuery.zoneId()
. Это будет напечатано, используя результат ZoneId.getId()
. Если зона не может быть получена тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга текст должен соответствовать известную зону или сместить. Есть два типа зонального ID, основанного на смещении, такие как '+01:30' и основаны на области, такие как 'Европа/Лондон'. Они анализируются по-другому. Если синтаксический анализ запустится с '+', '-, ', 'UT', 'UTC' или 'GMT', то синтаксический анализатор ожидает основанную на смещении зону и не будет соответствовать основанные на области зоны. ID смещения, такой как '+02:30', может быть в начале синтаксического анализа, или снабжен префиксом 'UT', 'UTC' или 'GMT'. Парсинг ID смещения эквивалентен использованию appendOffset(String, String)
использование параметров 'HH:MM:ss' и никакое смещение представляет в виде строки '0'. Если синтаксический анализ запускается с 'UT', 'UTC' или 'GMT', и синтаксический анализатор не может соответствовать следующий ID смещения, то ZoneOffset.UTC
выбирается. Во всех других случаях список известных основанных на области зон используется, чтобы найти самое долгое доступное соответствие. Если никакое соответствие не находится, и синтаксический анализ запускается с 'Z', то ZoneOffset.UTC
выбирается. Синтаксический анализатор использует случай чувствительная установка.
Например, следующее проанализирует:
"Europe/London" -- ZoneId.of("Europe/London") "Z" -- ZoneOffset.UTC "UT" -- ZoneOffset.UTC "UTC" -- ZoneOffset.UTC "GMT" -- ZoneOffset.UTC "UT0" -- ZoneOffset.UTC "UTC0" -- ZoneOffset.UTC "GMT0" -- ZoneOffset.UTC "+01:30" -- ZoneOffset.of("+01:30") "UT+01:30" -- ZoneOffset.of("+01:30") "UTC+01:30" -- ZoneOffset.of("+01:30") "GMT+01:30" -- ZoneOffset.of("+01:30")
appendZoneRegionId()
public DateTimeFormatterBuilder appendZoneRegionId()
ZoneOffset
. Это добавляет инструкцию, чтобы форматировать/анализировать зональный ID разработчику, только если это - основанный на области ID.
Во время форматирования зона получается, используя механизм, эквивалентный запросам временного с TemporalQuery.zoneId()
. Если зона является a ZoneOffset
или это не может быть получено тогда, исключение выдается, если раздел средства форматирования не дополнительный. Если зона не будет смещением, то зона будет напечатана, используя зональный ID от ZoneId.getId()
.
Во время парсинга текст должен соответствовать известную зону или сместить. Есть два типа зонального ID, основанного на смещении, такие как '+01:30' и основаны на области, такие как 'Европа/Лондон'. Они анализируются по-другому. Если синтаксический анализ запустится с '+', '-, ', 'UT', 'UTC' или 'GMT', то синтаксический анализатор ожидает основанную на смещении зону и не будет соответствовать основанные на области зоны. ID смещения, такой как '+02:30', может быть в начале синтаксического анализа, или снабжен префиксом 'UT', 'UTC' или 'GMT'. Парсинг ID смещения эквивалентен использованию appendOffset(String, String)
использование параметров 'HH:MM:ss' и никакое смещение представляет в виде строки '0'. Если синтаксический анализ запускается с 'UT', 'UTC' или 'GMT', и синтаксический анализатор не может соответствовать следующий ID смещения, то ZoneOffset.UTC
выбирается. Во всех других случаях список известных основанных на области зон используется, чтобы найти самое долгое доступное соответствие. Если никакое соответствие не находится, и синтаксический анализ запускается с 'Z', то ZoneOffset.UTC
выбирается. Синтаксический анализатор использует случай чувствительная установка.
Например, следующее проанализирует:
"Europe/London" -- ZoneId.of("Europe/London") "Z" -- ZoneOffset.UTC "UT" -- ZoneOffset.UTC "UTC" -- ZoneOffset.UTC "GMT" -- ZoneOffset.UTC "UT0" -- ZoneOffset.UTC "UTC0" -- ZoneOffset.UTC "GMT0" -- ZoneOffset.UTC "+01:30" -- ZoneOffset.of("+01:30") "UT+01:30" -- ZoneOffset.of("+01:30") "UTC+01:30" -- ZoneOffset.of("+01:30") "GMT+01:30" -- ZoneOffset.of("+01:30")
Отметьте, что этот метод, идентично appendZoneId()
кроме в механизме, используемом, чтобы получить зону. Отметьте также, что парсинг принимает смещения, тогда как форматирование никогда не будет производить тот.
appendZoneId()
public DateTimeFormatterBuilder appendZoneOrOffsetId()
Это добавляет инструкцию, чтобы форматировать/анализировать наилучшую имеющуюся зону или сместить ID разработчику. Зональный ID получается снисходительным способом, который сначала пытается найти истинный зональный ID, такой как это на ZonedDateTime
, и затем попытки найти смещение, такое как это на OffsetDateTime
.
Во время форматирования зона получается, используя механизм, эквивалентный запросам временного с TemporalQuery.zone()
. Это будет напечатано, используя результат ZoneId.getId()
. Если зона не может быть получена тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга текст должен соответствовать известную зону или сместить. Есть два типа зонального ID, основанного на смещении, такие как '+01:30' и основаны на области, такие как 'Европа/Лондон'. Они анализируются по-другому. Если синтаксический анализ запустится с '+', '-, ', 'UT', 'UTC' или 'GMT', то синтаксический анализатор ожидает основанную на смещении зону и не будет соответствовать основанные на области зоны. ID смещения, такой как '+02:30', может быть в начале синтаксического анализа, или снабжен префиксом 'UT', 'UTC' или 'GMT'. Парсинг ID смещения эквивалентен использованию appendOffset(String, String)
использование параметров 'HH:MM:ss' и никакое смещение представляет в виде строки '0'. Если синтаксический анализ запускается с 'UT', 'UTC' или 'GMT', и синтаксический анализатор не может соответствовать следующий ID смещения, то ZoneOffset.UTC
выбирается. Во всех других случаях список известных основанных на области зон используется, чтобы найти самое долгое доступное соответствие. Если никакое соответствие не находится, и синтаксический анализ запускается с 'Z', то ZoneOffset.UTC
выбирается. Синтаксический анализатор использует случай чувствительная установка.
Например, следующее проанализирует:
"Europe/London" -- ZoneId.of("Europe/London") "Z" -- ZoneOffset.UTC "UT" -- ZoneOffset.UTC "UTC" -- ZoneOffset.UTC "GMT" -- ZoneOffset.UTC "UT0" -- ZoneOffset.UTC "UTC0" -- ZoneOffset.UTC "GMT0" -- ZoneOffset.UTC "+01:30" -- ZoneOffset.of("+01:30") "UT+01:30" -- ZoneOffset.of("+01:30") "UTC+01:30" -- ZoneOffset.of("+01:30") "GMT+01:30" -- ZoneOffset.of("+01:30")
Отметьте, что этот метод, идентично appendZoneId()
кроме в механизме, используемом, чтобы получить зону.
appendZoneId()
public DateTimeFormatterBuilder appendZoneText(TextStyle textStyle)
Это добавляет инструкцию, чтобы форматировать/анализировать текстовое имя зоны разработчику.
Во время форматирования зона получается, используя механизм, эквивалентный запросам временного с TemporalQuery.zoneId()
. Если зона является a ZoneOffset
это будет напечатано, используя результат ZoneOffset.getId()
. Если зона не будет смещением, то текстовое имя будет искаться набор локали DateTimeFormatter
. Если временный напечатанный объект представит момент, то текст будет летним или зимним текстом времени как соответствующим. Если поиск для текста не находит подходящего reuslt, то ID
будет напечатан вместо этого. Если зона не может быть получена тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга принимаются или текстовое имя зоны, зональный ID или смещение. Много текстовых имен зон не уникальны, таковы как CST, может быть и для "Центрального Стандартного Времени" и для "китайского Стандартного Времени". В этой ситуации зональный идентификатор будет определен информацией об области от средства форматирования locale
и стандартный зональный идентификатор для той области, например, America/New_York для Америки Восточная зона. appendZoneText(TextStyle, Set)
может использоваться, чтобы определить ряд привилегированного ZoneId
в этой ситуации.
textStyle
- стиль текста, чтобы использовать, не нульpublic DateTimeFormatterBuilder appendZoneText(TextStyle textStyle, Set<ZoneId> preferredZones)
Это добавляет инструкцию, чтобы форматировать/анализировать текстовое имя зоны разработчику.
Во время форматирования зона получается, используя механизм, эквивалентный запросам временного с TemporalQuery.zoneId()
. Если зона является a ZoneOffset
это будет напечатано, используя результат ZoneOffset.getId()
. Если зона не будет смещением, то текстовое имя будет искаться набор локали DateTimeFormatter
. Если временный напечатанный объект представит момент, то текст будет летним или зимним текстом времени как соответствующим. Если поиск для текста не находит подходящего reuslt, то ID
будет напечатан вместо этого. Если зона не может быть получена тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга принимаются или текстовое имя зоны, зональный ID или смещение. Много текстовых имен зон не уникальны, таковы как CST, может быть и для "Центрального Стандартного Времени" и для "китайского Стандартного Времени". В этой ситуации зональный идентификатор будет определен информацией об области от средства форматирования locale
и стандартный зональный идентификатор для той области, например, America/New_York для Америки Восточная зона. Этот метод также позволяет ряд привилегированного ZoneId
быть определенным для того, чтобы проанализировать. Соответствующий привилегированный зональный идентификатор будет использоваться, если структурное проанализированное имя зоны не будет уникально. Если зона не может быть проанализирована тогда, исключение выдается, если раздел средства форматирования не дополнительный.
textStyle
- стиль текста, чтобы использовать, не нульpreferredZones
- набор привилегированных зональных идентификаторов, не нульpublic DateTimeFormatterBuilder appendChronologyId()
Это добавляет инструкцию, чтобы форматировать/анализировать ID хронологии разработчику.
Во время форматирования хронология получается, используя механизм, эквивалентный запросам временного с TemporalQuery.chronology()
. Это будет напечатано, используя результат Chronology.getId()
. Если хронология не может быть получена тогда, исключение выдается, если раздел средства форматирования не дополнительный.
Во время парсинга хронология анализируется и должна соответствовать одну из хронологий в Chronology.getAvailableChronologies()
. Если хронология не может быть проанализирована тогда, исключение выдается, если раздел средства форматирования не дополнительный. Синтаксический анализатор использует случай чувствительная установка.
public DateTimeFormatterBuilder appendChronologyText(TextStyle textStyle)
Календарное имя системы будет выведено во время формата. Если хронология не может быть получена тогда, исключение будет выдано. Календарное имя системы получается из Хронологии.
textStyle
- стиль текста, чтобы использовать, не нульpublic DateTimeFormatterBuilder appendLocalized(FormatStyle dateStyle, FormatStyle timeStyle)
Это добавляет локализованный раздел разработчику, подходящему для того, чтобы вывести дату, время или разовая датой комбинация. Формат локализованного раздела лениво ищется основанный на четырех элементах:
dateStyle
определенный к этому методу timeStyle
определенный к этому методу Locale
из DateTimeFormatter
Chronology
, выбор наилучшего имеющегося Во время форматирования хронология получается из временного отформатированного объекта, который, возможно, был переопределен DateTimeFormatter.withChronology(Chronology)
.
Во время парсинга, если хронология была уже проанализирована, то это используется. Иначе значение по умолчанию от DateTimeFormatter.withChronology(Chronology)
используется, с IsoChronology
как нейтрализация.
Отметьте, что этот метод обеспечивает подобную функциональность для методов на DateFormat
такой как DateFormat.getDateTimeInstance(int, int)
.
dateStyle
- стиль даты, чтобы использовать, не обнулите средства никакая требуемая датаtimeStyle
- стиль времени, чтобы использовать, не обнулите средства никакое требуемое времяIllegalArgumentException
- если и дата и стили времени являются нулемpublic DateTimeFormatterBuilder appendLiteral(char literal)
Этот символ будет выведен во время формата.
literal
- литерал, чтобы добавить, не нульpublic DateTimeFormatterBuilder appendLiteral(String literal)
Эта строка будет выведена во время формата.
Если литерал пуст, ничто не добавляется к средству форматирования.
literal
- литерал, чтобы добавить, не нульpublic DateTimeFormatterBuilder append(DateTimeFormatter formatter)
Этот метод имеет тот же самый эффект как добавляющий каждую из составных частей средства форматирования непосредственно этому разработчику.
formatter
- средство форматирования, чтобы добавить, не нульpublic DateTimeFormatterBuilder appendOptional(DateTimeFormatter formatter)
Этот метод имеет тот же самый эффект как добавляющий каждую из составных частей непосредственно этому разработчику, окруженному optionalStart()
и optionalEnd()
.
Средство форматирования отформатирует, если данные будут доступны для всех полей, содержавших в пределах него. Средство форматирования проанализирует, если строка будет соответствовать, иначе никакая ошибка не возвращается.
formatter
- средство форматирования, чтобы добавить, не нульpublic DateTimeFormatterBuilder appendPattern(String pattern)
Все буквы к 'Z' и к 'z' резервируются как буквы образца. Символы '#', '{' и'}' резервируются для будущего использования. Символы' [' и']' указывают на дополнительные образцы. Следующие буквы образца определяются:
Symbol Meaning Presentation Examples ------ ------- ------------ ------- G era text AD; Anno Domini; A 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 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 E day-of-week text Tue; Tuesday; T e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T F week-of-month number 3 a am-pm-of-day text PM h clock-hour-of-am-pm (1-12) number 12 K hour-of-am-pm (0-11) number 0 k clock-hour-of-am-pm (1-24) number 0 H hour-of-day (0-23) number 0 m minute-of-hour number 30 s second-of-minute number 55 S fraction-of-second fraction 978 A milli-of-day number 1234 n nano-of-second number 987654321 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 ' [ optional section start ] optional section end # reserved for future use { reserved for future use } reserved for future use
Количество букв образца определяет формат. См. DateTimeFormatter для фокусируемого пользователем описания образцов. Следующие таблицы определяют, как буквы образца отображаются на разработчика.
Поля даты: Образец обозначает буквами, чтобы вывести дату.
Pattern Count Equivalent builder methods ------- ----- -------------------------- G 1 appendText(ChronoField.ERA, TextStyle.SHORT) 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 ww 1 append special localized WeekFields element for numeric week-of-year, zero-padded W 1 append special localized WeekFields element for numeric week-of-month d 1 appendValue(ChronoField.DAY_OF_MONTH) 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) 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) e 1 append special localized WeekFields element for numeric day-of-week ee 2 append special localized WeekFields element for numeric day-of-week, zero-padded 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) c 1 append special localized WeekFields element for numeric day-of-week ccc 3 appendText(ChronoField.DAY_OF_WEEK, TextStyle.SHORT_STANDALONE) cccc 4 appendText(ChronoField.DAY_OF_WEEK, TextStyle.FULL_STANDALONE) ccccc 5 appendText(ChronoField.DAY_OF_WEEK, TextStyle.NARROW_STANDALONE)
Поля времени: Образец обозначает буквами, чтобы вывести время.
Pattern Count Equivalent builder methods ------- ----- -------------------------- a 1 appendText(ChronoField.AMPM_OF_DAY, TextStyle.SHORT) h 1 appendValue(ChronoField.CLOCK_HOUR_OF_AMPM) hh 2 appendValue(ChronoField.CLOCK_HOUR_OF_AMPM, 2) H 1 appendValue(ChronoField.HOUR_OF_DAY) HH 2 appendValue(ChronoField.HOUR_OF_DAY, 2) k 1 appendValue(ChronoField.CLOCK_HOUR_OF_DAY) kk 2 appendValue(ChronoField.CLOCK_HOUR_OF_DAY, 2) K 1 appendValue(ChronoField.HOUR_OF_AMPM) KK 2 appendValue(ChronoField.HOUR_OF_AMPM, 2) m 1 appendValue(ChronoField.MINUTE_OF_HOUR) mm 2 appendValue(ChronoField.MINUTE_OF_HOUR, 2) s 1 appendValue(ChronoField.SECOND_OF_MINUTE) ss 2 appendValue(ChronoField.SECOND_OF_MINUTE, 2) S..S 1..n appendFraction(ChronoField.NANO_OF_SECOND, n, n, false) A 1 appendValue(ChronoField.MILLI_OF_DAY) A..A 2..n appendValue(ChronoField.MILLI_OF_DAY, n) n 1 appendValue(ChronoField.NANO_OF_SECOND) n..n 2..n appendValue(ChronoField.NANO_OF_SECOND, n) N 1 appendValue(ChronoField.NANO_OF_DAY) N..N 2..n appendValue(ChronoField.NANO_OF_DAY, n)
Зональный ID: Образец обозначает буквами, чтобы вывести ZoneId
.
Pattern Count Equivalent builder methods ------- ----- -------------------------- VV 2 appendZoneId() z 1 appendZoneText(TextStyle.SHORT) zz 2 appendZoneText(TextStyle.SHORT) zzz 3 appendZoneText(TextStyle.SHORT) zzzz 4 appendZoneText(TextStyle.FULL)
Зональное смещение: Образец обозначает буквами, чтобы вывести ZoneOffset
.
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") x 1 appendOffset("+HHmm","+00") xx 2 appendOffset("+HHMM","+0000") xxx 3 appendOffset("+HH:MM","+00:00") 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")
Модификаторы: буквы Образца, которые изменяют остальную часть образца:
Pattern Count Equivalent builder methods ------- ----- -------------------------- [ 1 optionalStart() ] 1 optionalEnd() p..p 1..n padNext(n)
Любая последовательность букв, не определенных выше, нераспознанной буквы или зарезервированного символа, выдаст исключение. Будущие версии могут добавить к набору образцов. Рекомендуется использовать одинарные кавычки вокруг всех символов, которые Вы хотите вывести непосредственно, чтобы гарантировать, что будущие изменения не повреждают Ваше приложение.
Отметьте, что строка образца подобна, но не идентична, к SimpleDateFormat
. Строка образца также подобна, но не идентична к определенному Unicode Общий Репозитарий Данных Локали (CLDR/LDML). Буквы 'X' и 'u' образца выровненные Unicode CLDR/LDML. В отличие от этого, SimpleDateFormat
использование 'u' в течение числового дня недели. Буквы 'y' и 'Y' образца анализируют годы двух цифр и больше чем 4 цифр по-другому. Образец обозначает буквами 'n', 'N', и 'p' добавляются. Типы числа отклонят большие количества.
pattern
- образец, чтобы добавить, не нульIllegalArgumentException
- если образец недопустимpublic DateTimeFormatterBuilder padNext(int padWidth)
Это дополнение дополнит к фиксированному width, используя пробелы.
Во время форматирования украшенный элемент будет выведен и затем дополнен к указанному width. Исключение будет выдано во время форматирования, если клавиатура width будет превышена.
Во время парсинга анализируются дополнение и украшенный элемент. Если парсинг снисходителен, то клавиатура width обрабатывается как максимум. Если парсинг является нечувствительным к регистру, то символ-заполнитель является соответствующим, игнорируя регистр. Дополнение анализируется жадно. Таким образом, если украшенный элемент запустится с символа-заполнителя, то он не будет проанализирован.
padWidth
- клавиатура width, 1 или большеIllegalArgumentException
- если клавиатура width является слишком маленькойpublic DateTimeFormatterBuilder padNext(int padWidth, char padChar)
Это дополнение предназначается для того, чтобы дополнить кроме дополнения нуля. Дополнение нуля должно быть достигнуто, используя appendValue методы.
Во время форматирования украшенный элемент будет выведен и затем дополнен к указанному width. Исключение будет выдано во время форматирования, если клавиатура width будет превышена.
Во время парсинга анализируются дополнение и украшенный элемент. Если парсинг снисходителен, то клавиатура width обрабатывается как максимум. Если парсинг является нечувствительным к регистру, то символ-заполнитель является соответствующим, игнорируя регистр. Дополнение анализируется жадно. Таким образом, если украшенный элемент запустится с символа-заполнителя, то он не будет проанализирован.
padWidth
- клавиатура width, 1 или большеpadChar
- символ-заполнительIllegalArgumentException
- если клавиатура width является слишком маленькойpublic DateTimeFormatterBuilder optionalStart()
Вывод форматирования может включать дополнительные разделы, которые могут быть вложены. Дополнительный раздел запускается, вызывая этот метод и заканчивается, вызывая optionalEnd()
или заканчивая процесс сборки.
Все элементы в дополнительном разделе обрабатываются как дополнительные. Во время форматирования только выводится раздел, если данные доступны в TemporalAccessor
для всех элементов в разделе. Во время парсинга целый раздел может отсутствовать в проанализированной строке.
Например, рассмотрите установку разработчика как builder.appendValue(HOUR_OF_DAY,2).optionalStart().appendValue(MINUTE_OF_HOUR,2)
. Дополнительный раздел заканчивается автоматически в конце разработчика. Во время форматирования будет только выведена минута, если ее значение может быть получено из разового датой. Во время парсинга будет успешно проанализирован ввод, присутствует ли минута или нет.
public DateTimeFormatterBuilder optionalEnd()
Вывод форматирования может включать дополнительные разделы, которые могут быть вложены. Дополнительный раздел запускается, вызывая optionalStart()
и законченное использование этого метода (или в конце разработчика).
Вызов этого метода не ранее вызвав optionalStart
выдаст исключение. Вызов этого метода сразу после вызова optionalStart
не имеет никакого эффекта на средство форматирования кроме окончания (пустого) дополнительного раздела.
Все элементы в дополнительном разделе обрабатываются как дополнительные. Во время форматирования только выводится раздел, если данные доступны в TemporalAccessor
для всех элементов в разделе. Во время парсинга целый раздел может отсутствовать в проанализированной строке.
Например, рассмотрите установку разработчика как builder.appendValue(HOUR_OF_DAY,2).optionalStart().appendValue(MINUTE_OF_HOUR,2).optionalEnd()
. Во время форматирования будет только выведена минута, если ее значение может быть получено из разового датой. Во время парсинга будет успешно проанализирован ввод, присутствует ли минута или нет.
IllegalStateException
- если не было никакого предыдущего звонка optionalStart
public DateTimeFormatter toFormatter()
DateTimeFormatter
использование локали значения по умолчанию. Это создаст средство форматирования с локалью ФОРМАТА значения по умолчанию. Числа будут напечатаны и проанализировали использование стандартного DecimalStyle. Стиль преобразователя будет SMART
.
Вызов этого метода закончит любые открытые дополнительные разделы, неоднократно вызывая optionalEnd()
прежде, чем создать средство форматирования.
Этот разработчик может все еще использоваться после создания средства форматирования при желании, хотя состояние, возможно, было изменено звонками optionalEnd
.
public DateTimeFormatter toFormatter(Locale locale)
DateTimeFormatter
использование указанной локали. Это создаст средство форматирования с указанной локалью. Числа будут напечатаны и проанализировали использование стандартного DecimalStyle. Стиль преобразователя будет SMART
.
Вызов этого метода закончит любые открытые дополнительные разделы, неоднократно вызывая optionalEnd()
прежде, чем создать средство форматирования.
Этот разработчик может все еще использоваться после создания средства форматирования при желании, хотя состояние, возможно, было изменено звонками optionalEnd
.
locale
- локаль, чтобы использовать для того, чтобы отформатировать, не нуль
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92