Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class DateTimeFormatter extends Object
Этот class обеспечивает основную точку входа приложения для печати и парсинга и обеспечивает общие реализации DateTimeFormatter
:
ISO_LOCAL_DATE
uuuu-MMM-dd
long
или medium
Более сложными средствами форматирования обеспечивают DateTimeFormatterBuilder
.
Основные разовые датой классы обеспечивают два метода - один для того, чтобы отформатировать, format(DateTimeFormatter formatter)
, и один для того, чтобы проанализировать, parse(CharSequence text, DateTimeFormatter formatter)
.
Например:
String text = date.toString(formatter); LocalDate date = LocalDate.parse(text, formatter);
В дополнение к формату средства форматирования могут быть созданы с требуемой Локалью, Хронологией, ZoneId, и DecimalStyle.
withLocale
метод возвращает новое средство форматирования, которое переопределяет локаль. Локаль влияет на некоторые аспекты форматирования и парсинга. Например, ofLocalizedDate
обеспечивает средство форматирования, которое использует локаль определенный формат даты.
withChronology
метод возвращает новое средство форматирования, которое переопределяет хронологию. Если переопределено, разовое датой значение преобразовывается в хронологию перед форматированием. Во время парсинга разового датой значения преобразовывается в хронологию прежде, чем это будет возвращено.
withZone
метод возвращает новое средство форматирования, которое переопределяет зону. Если переопределено, разовое датой значение преобразовывается в ZonedDateTime с требуемым ZoneId перед форматированием. Во время парсинга ZoneId применяется прежде, чем значение возвращается.
withDecimalStyle
метод возвращает новое средство форматирования, которое переопределяет DecimalStyle
. Символы DecimalStyle используются для форматирования и парсинга.
Некоторые приложения, возможно, должны использовать более старое java.text.Format
class для того, чтобы отформатировать. toFormat()
метод возвращает реализацию java.text.Format
.
Средство форматирования | Описание | Пример |
---|---|---|
ofLocalizedDate(dateStyle) |
Средство форматирования с датой разрабатывает от локали | '2011-12-03' |
ofLocalizedTime(timeStyle) |
Средство форматирования со временем разрабатывает от локали | '10:15:30' |
ofLocalizedDateTime(dateTimeStyle) |
Средство форматирования со стилем для даты и время от локали | '3 июня 2008 11:05:30' |
ofLocalizedDateTime(dateStyle,timeStyle)
|
Средство форматирования с датой и время разрабатывает от локали | '3 июня 2008 11:05' |
BASIC_ISO_DATE |
Основная дата ISO | '20111203' |
ISO_LOCAL_DATE |
ISO Локальная Дата | '2011-12-03' |
ISO_OFFSET_DATE |
Дата ISO со смещением | '2011-12-03+01:00' |
ISO_DATE |
Дата ISO с или без смещения | '2011-12-03+01:00'; '2011-12-03' |
ISO_LOCAL_TIME |
Время без смещения | '10:15:30' |
ISO_OFFSET_TIME |
Время со смещением | '10:15:30+01:00' |
ISO_TIME |
Время с или без смещения | '10:15:30+01:00'; '10:15:30' |
ISO_LOCAL_DATE_TIME |
ISO Локальная Дата и Время | '2011-12-03T10:15:30' |
ISO_OFFSET_DATE_TIME |
Время даты со Смещением | 2011-12-03T10:15:30+01:00' |
ISO_ZONED_DATE_TIME |
Зонное Время Даты | '2011-12-03T10:15:30+01:00 [Европа/Париж]' |
ISO_DATE_TIME |
Дата и время с ZoneId | '2011-12-03T10:15:30+01:00 [Европа/Париж]' |
ISO_ORDINAL_DATE |
Год и день года | '2012-337' |
ISO_WEEK_DATE |
Год и Неделя | 2012-W48-6' |
ISO_INSTANT |
Дата и Время Момента | '2011-12-03T10:15:30Z' |
RFC_1123_DATE_TIME |
RFC 1123 / RFC 822 | 'Вторник, 3 июня 2008 GMT 11:05:30' |
ofPattern(String)
и ofPattern(String, Locale)
методы. Например, "d MMM uuuu"
отформатирует 03.12.2011 как '3 декабря 2011'. Средство форматирования, создаваемое из образца, может использоваться как много раз по мере необходимости, это является неизменным и является ориентированным на многопотоковое исполнение. Например:
DateTimeFormatter formatter = DateTimeFormatter.pattern("yyyy MM dd"); String text = date.toString(formatter); LocalDate date = LocalDate.parse(text, formatter);
Все буквы к '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
Количество букв образца определяет формат.
Текст: стиль текста определяется основанный на числе используемых букв образца. Меньше чем 4 буквы образца будут использовать short form
. Точно 4 буквы образца будут использовать full form
. Точно 5 букв образца будут использовать narrow form
. Буквы 'L', 'c' образца, и 'q' определяют автономную форму стилей текста.
Число: Если количество букв один, то значение выводится, используя минимальное число цифр и без дополнения. Иначе, количество цифр используется в качестве width выходного поля со значением, дополненным нулем по мере необходимости. У следующих букв образца есть ограничения на количество букв. Только одна буква 'c' и 'F' может быть определена. Могут быть определены до двух букв 'd', 'H', 'h', 'K', 'k', 'м.', и 's'. Могут быть определены до трех букв 'D'.
Число/Текст: Если количество букв образца 3 или больше, используйте текстовые правила выше. Иначе используйте правила Числа выше.
Часть: Выводит nano-of-second поле как часть-секундного. У значения nano-of-second есть девять цифр, таким образом количество букв образца от 1 до 9. Если это - меньше чем 9, то значение nano-of-second является усеченным с только старшими значащими выводимыми цифрами. Анализируя в строгом режиме, число проанализированных цифр должно соответствовать количество букв образца. Анализируя в снисходительном режиме, число проанализированных цифр должно быть, по крайней мере, количеством букв образца, до 9 цифр.
Год: количество букв определяет минимальное поле width, ниже которого используется дополнение. Если количество букв два, то a reduced
две формы цифры используются. Для того, чтобы напечатать, это выводит самые правые две цифры. Для того, чтобы проанализировать, это проанализирует использование основного значения 2000, заканчиваясь через год в пределах диапазона 2000 - 2099 включительно. Если количество букв - меньше чем четыре (но не два), то знак только выводится в течение отрицательных лет согласно SignStyle.NORMAL
. Иначе, знак выводится, если клавиатура width превышается, согласно SignStyle.EXCEEDS_PAD
.
ZoneId: Это выводит ID часового пояса, такой как 'Европа/Париж'. Если количество букв два, то ID часового пояса выводится. Любое другое количество бросков букв IllegalArgumentException
.
Имена зон: Это выводит имя дисплея ID часового пояса. Если количество букв один, два или три, то краткое название выводится. Если количество букв четыре, то полное имя выводится. Пять или больше бросков букв IllegalArgumentException
.
Сместите X и x: Это форматирует смещение, основанное на числе букв образца. Выводы буквы только час, такой как '+01', если минута не является ненулевой, когда минута также выводится, такой как '+0130'. Две буквы выводят час и минуту, без двоеточия, такой как '+0130'. Три буквы выводят час и минуту, с двоеточием, таким как '+01:30'. Четыре буквы выводят час и минуту и дополнительную секунду, без двоеточия, такой как '+013015'. Пять букв выводят час и минуту и дополнительную секунду, с двоеточием, таким как '+01:30:15'. Шесть или больше бросков букв IllegalArgumentException
. Буква 'X' образца (верхний регистр) выведет 'Z', когда смещение, которое будет выведено, было бы нулем, тогда как буква 'x' образца (нижний регистр) выведет '+00', '+0000', или '+00:00'.
Смещение O: Это форматирует локализованное смещение, основанное на числе букв образца. Одна буква выводит краткую форму локализованного смещения, которое локализуется текст смещения, такой как 'GMT', с часом без начального нуля, дополнительная 2-разрядная минута и второе если ненулевой, и двоеточие, например 'GMT+8'. Четыре буквы выводят полную форму, которая локализуется текст смещения, такой как 'GMT, с 2-разрядным полем часа и минуты, дополнительным вторым полем если ненулевой, и двоеточием, например 'GMT+08:00'. Любое другое количество бросков букв IllegalArgumentException
.
Смещение Z: Это форматирует смещение, основанное на числе букв образца. Один, две или три буквы выводят час и минуту, без двоеточия, такой как '+0130'. Вывод будет '+0000', когда смещение будет нулем. Четыре буквы выводят полную форму локализованного смещения, эквивалентного четырем буквам Смещения-O. Вывод будет соответствующим локализованным текстом смещения, если смещение будет нулем. Пять букв выводят час, минуту, с дополнительной секундой если ненулевой, с двоеточием. Это выводит 'Z', если смещение является нулем. Шесть или больше бросков букв IllegalArgumentException
.
Дополнительный раздел: дополнительные маркеры раздела работают точно как вызов DateTimeFormatterBuilder.optionalStart()
и DateTimeFormatterBuilder.optionalEnd()
.
Модификатор клавиатуры: Изменяет образец, который сразу следует, чтобы быть дополненным пробелами. Клавиатура width определяется числом букв образца. Это - то же самое как вызов DateTimeFormatterBuilder.padNext(int)
.
Например, 'ppH' выводит час-дневного, дополненный слева пробелами к width 2.
Любая нераспознанная буква является ошибкой. Любой символ небуквы, кроме' [', ']', '{', '}', '#' и одинарная кавычка будет выведен непосредственно. Несмотря на это, рекомендуется использовать одинарные кавычки вокруг всех символов, которые Вы хотите вывести непосредственно, чтобы гарантировать, что будущие изменения не повреждают Ваше приложение.
Map
из поля, чтобы оценить, a ZoneId
и a Chronology
. Во-вторых, проанализированные данные разрешаются, проверяя, объединяясь и упрощая различные поля в более полезные. Пять методов парсинга предоставляются этим class. Четыре из них выполняют обоих фазы решения и синтаксический анализ. Пятый метод, parseUnresolved(CharSequence, ParsePosition)
, только выполняет первую фазу, оставляя неразрешенный результат. Также, это - по существу низкоуровневая операция.
Фазой решения управляют два параметра, устанавливается на этом class.
ResolverStyle
перечисление, которое предлагает три разных подхода, строгие, умные и снисходительные. Умная опция является значением по умолчанию. Это может быть установлено, используя withResolverStyle(ResolverStyle)
.
withResolverFields(TemporalField...)
параметр позволяет набор полей, которые будут разрешены, чтобы фильтроваться прежде, чем разрешение запустится. Например, если средство форматирования проанализировало год, месяц, день-месячного и день-летнего, то есть два подхода, чтобы разрешить дату: (год + месяц + день-месячного) и (год + день-летнего). Поля преобразователя позволяют одному из двух подходов быть выбранным. Если никакие поля преобразователя не устанавливаются тогда, оба подхода должны привести к той же самой дате.
Разрешение отдельных полей, чтобы сформировать полную дату и время является сложным процессом с поведением, распределенным через многие классы. Это следует за этими шагами:
IsoChronology
. ChronoField
поля даты разрешаются. Это достигается, используя Chronology.resolveDate(Map, ResolverStyle)
. Документация о полевом разрешении располагается в реализации Chronology
. ChronoField
поля времени разрешаются. Это документируется на ChronoField
и то же самое для всех хронологий. ChronoField
обрабатываются. Это достигается, используя TemporalField.resolve(TemporalAccessor, long, ResolverStyle)
. Документация о полевом разрешении располагается в реализации TemporalField
. ChronoField
дата и поля времени повторно разрешаются. Это позволяет полям в шаге четыре производить ChronoField
значения и сделали, чтобы они обработанный в даты и времена. LocalTime
формируется, если есть, по крайней мере, доступный час-дневного. Это включает обеспечение значений по умолчанию в течение минуты, второй и часть вторых. Модификатор и Тип | Поле и Описание |
---|---|
static DateTimeFormatter |
BASIC_ISO_DATE
Средство форматирования даты ISO, которое форматирует или анализирует дату без смещения, такой как '20111203'.
|
static DateTimeFormatter |
ISO_DATE
Средство форматирования даты ISO, которое форматирует или анализирует дату со смещением при наличии, такой как '2011-12-03' или '2011-12-03+01:00'.
|
static DateTimeFormatter |
ISO_DATE_TIME
ПОДОБНОЕ ISO разовое датой средство форматирования, которое форматирует или анализирует разовое датой со смещением и зоной при наличии, такой как '2011-12-03T10:15:30', '2011-12-03T10:15:30+01:00' или '2011-12-03T10:15:30+01:00 [Европа/Париж]'.
|
static DateTimeFormatter |
ISO_INSTANT
Средство форматирования момента ISO, которое форматирует или анализирует момент в UTC, таком как '2011-12-03T10:15:30Z'.
|
static DateTimeFormatter |
ISO_LOCAL_DATE
Средство форматирования даты ISO, которое форматирует или анализирует дату без смещения, такой как '2011-12-03'.
|
static DateTimeFormatter |
ISO_LOCAL_DATE_TIME
Разовое датой средство форматирования ISO, которое форматирует или анализирует разовое датой без смещения, такого как '2011-12-03T10:15:30'.
|
static DateTimeFormatter |
ISO_LOCAL_TIME
Средство форматирования времени ISO, которое форматирует или анализирует время без смещения, такой как '10:15' или '10:15:30'.
|
static DateTimeFormatter |
ISO_OFFSET_DATE
Средство форматирования даты ISO, которое форматирует или анализирует дату со смещением, такой как '2011-12-03+01:00'.
|
static DateTimeFormatter |
ISO_OFFSET_DATE_TIME
Разовое датой средство форматирования ISO, которое форматирует или анализирует разовое датой со смещением, такой как '2011-12-03T10:15:30+01:00'.
|
static DateTimeFormatter |
ISO_OFFSET_TIME
Средство форматирования времени ISO, которое форматирует или анализирует время со смещением, такой как '10:15+01:00' или '10:15:30 +01:00'.
|
static DateTimeFormatter |
ISO_ORDINAL_DATE
Средство форматирования даты ISO, которое форматирует или анализирует порядковую дату без смещения, такой как '2012-337'.
|
static DateTimeFormatter |
ISO_TIME
Средство форматирования времени ISO, которое форматирует или анализирует время, со смещением при наличии, такой как '10:15', '10:15:30' или '10:15:30 +01:00'.
|
static DateTimeFormatter |
ISO_WEEK_DATE
Средство форматирования даты ISO, которое форматирует или анализирует основанную на неделе дату без смещения, такого как '2012-W48-6'.
|
static DateTimeFormatter |
ISO_ZONED_DATE_TIME
ПОДОБНОЕ ISO разовое датой средство форматирования, которое форматирует или анализирует разовое датой со смещением и зоной, такой как '2011-12-03T10:15:30+01:00 [Европа/Париж]'.
|
static DateTimeFormatter |
RFC_1123_DATE_TIME
RFC 1123 разовое датой средство форматирования, такой как 'вторник, 3 июня 2008 GMT 11:05:30'.
|
Модификатор и Тип | Метод и Описание |
---|---|
Строка |
format(TemporalAccessor temporal)
Форматирует разовый датой объект, используя это средство форматирования.
|
void |
formatTo(TemporalAccessor temporal, Appendable appendable)
Форматирует разовый датой объект к
Appendable использование этого средства форматирования. |
Хронология |
getChronology()
Заставляет хронологию переопределения использоваться во время форматирования.
|
DecimalStyle |
getDecimalStyle()
Заставляет DecimalStyle использоваться во время форматирования.
|
Локаль |
getLocale()
Заставляет локаль использоваться во время форматирования.
|
Set<TemporalField> |
getResolverFields()
Заставляет поля преобразователя использовать во время парсинга.
|
ResolverStyle |
getResolverStyle()
Заставляет стиль преобразователя использовать во время парсинга.
|
ZoneId |
getZone()
Заставляет зону переопределения использоваться во время форматирования.
|
static DateTimeFormatter |
ofLocalizedDate(FormatStyle dateStyle)
Возвращает локаль определенный формат даты для хронологии ISO.
|
static DateTimeFormatter |
ofLocalizedDateTime(FormatStyle dateTimeStyle)
Возвращает локаль определенное разовое датой средство форматирования для хронологии ISO.
|
static DateTimeFormatter |
ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle)
Возвращает локаль определенная дата и формат времени для хронологии ISO.
|
static DateTimeFormatter |
ofLocalizedTime(FormatStyle timeStyle)
Возвращает локаль определенный формат времени для хронологии ISO.
|
static DateTimeFormatter |
ofPattern(String pattern)
Создает средство форматирования, используя указанный образец.
|
static DateTimeFormatter |
ofPattern(String pattern, Locale locale)
Создает средство форматирования, используя указанный образец и локаль.
|
TemporalAccessor |
parse(CharSequence text)
Полностью анализирует текст, производящий временный объект.
|
TemporalAccessor |
parse(CharSequence text, ParsePosition position)
Анализирует текст, используя это средство форматирования, обеспечивая управление текстовой позицией.
|
<T> T |
parse(CharSequence text, TemporalQuery<T> query)
Полностью анализирует текст, производящий объект указанного типа.
|
TemporalAccessor |
parseBest(CharSequence text, TemporalQuery<?>... queries)
Полностью анализирует текст, производящий объект одного из указанных типов.
|
static TemporalQuery<Period> |
parsedExcessDays()
Запрос, который обеспечивает доступ к избыточным дням, которые были проанализированы.
|
static TemporalQuery<Boolean> |
parsedLeapSecond()
Запрос, который обеспечивает доступ к тому, был ли с секундой прыжка проанализирован.
|
TemporalAccessor |
parseUnresolved(CharSequence text, ParsePosition position)
Анализирует текст, используя это средство форматирования, не разрешая результат, предназначенный для усовершенствованных вариантов использования.
|
Формат |
toFormat()
Возвраты это средство форматирования как a
java.text.Format экземпляр. |
Формат |
toFormat(TemporalQuery<?> parseQuery)
Возвраты это средство форматирования как a
java.text.Format экземпляр, который проанализирует использование указанного запроса. |
Строка |
toString()
Возвращает описание базовых средств форматирования.
|
DateTimeFormatter |
withChronology(Chronology chrono)
Возвращает копию этого средства форматирования с новой хронологией переопределения.
|
DateTimeFormatter |
withDecimalStyle(DecimalStyle decimalStyle)
Возвращает копию этого средства форматирования с новым DecimalStyle.
|
DateTimeFormatter |
withLocale(Locale locale)
Возвращает копию этого средства форматирования с новой локалью.
|
DateTimeFormatter |
withResolverFields(Set<TemporalField> resolverFields)
Возвращает копию этого средства форматирования с новым набором полей преобразователя.
|
DateTimeFormatter |
withResolverFields(TemporalField... resolverFields)
Возвращает копию этого средства форматирования с новым набором полей преобразователя.
|
DateTimeFormatter |
withResolverStyle(ResolverStyle resolverStyle)
Возвращает копию этого средства форматирования с новым стилем преобразователя.
|
DateTimeFormatter |
withZone(ZoneId zone)
Возвращает копию этого средства форматирования с новой зоной переопределения.
|
public static final DateTimeFormatter ISO_LOCAL_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный локальный формат даты. Формат состоит из:
year
. Годы в диапазоне 0000 к 9999 будут предварительно дополнены нулем, чтобы гарантировать четыре цифры. У лет вне того диапазона будет снабженный префиксом положительный или отрицательный символ. month-of-year
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. day-of-month
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_OFFSET_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный формат даты смещения. Формат состоит из:
ISO_LOCAL_DATE
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный формат даты. Формат состоит из:
ISO_LOCAL_DATE
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_LOCAL_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный формат местного времени. Формат состоит из:
hour-of-day
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. minute-of-hour
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. second-of-minute
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. nano-of-second
. Так много цифр будут выведены как требуется. У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_OFFSET_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный формат времени смещения. Формат состоит из:
ISO_LOCAL_TIME
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный формат времени смещения. Формат состоит из:
ISO_LOCAL_TIME
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_LOCAL_DATE_TIME
Это возвращает неизменное средство форматирования, способное к форматированию, и парсинг расширенного ISO 8601 смещал разовый датой формат. Формат состоит из:
ISO_LOCAL_DATE
ISO_LOCAL_TIME
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_OFFSET_DATE_TIME
Это возвращает неизменное средство форматирования, способное к форматированию, и парсинг расширенного ISO 8601 смещал разовый датой формат. Формат состоит из:
ISO_LOCAL_DATE_TIME
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_ZONED_DATE_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу формата, который расширяется, расширенный ISO 8601 смещал разовый датой формат, чтобы добавить часовой пояс. Раздел в квадратных скобках не является частью стандарта ISO 8601. Формат состоит из:
ISO_OFFSET_DATE_TIME
ZoneOffset
тогда формат полон. zone ID
. Это не часть стандарта ISO 8601. Парсинг является чувствительным к регистру. У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_DATE_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенная локальная переменная, или смещало разовый датой формат, так же как расширенную форму не-ISO, определяющую часовой пояс. Формат состоит из:
ISO_LOCAL_DATE_TIME
offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. ZoneOffset
тогда формат полон. zone ID
. Это не часть стандарта ISO 8601. Парсинг является чувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_ORDINAL_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный порядковый формат даты. Формат состоит из:
year
. Годы в диапазоне 0000 к 9999 будут предварительно дополнены нулем, чтобы гарантировать четыре цифры. У лет вне того диапазона будет снабженный префиксом положительный или отрицательный символ. day-of-year
. Это предварительно дополняется нулем, чтобы гарантировать три цифры. offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_WEEK_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 расширенный основанный на неделе формат даты. Формат состоит из:
week-based-year
. Годы в диапазоне 0000 к 9999 будут предварительно дополнены нулем, чтобы гарантировать четыре цифры. У лет вне того диапазона будет снабженный префиксом положительный или отрицательный символ. week-of-week-based-year
. Это предварительно дополняется нулем, чтобы гарантировать три цифры. day-of-week
. Значение, выполненное с понедельника (1) к воскресенью (7). offset ID
. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter ISO_INSTANT
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу формата момента ISO 8601. Форматируя, второе-минутного всегда выводится. nano-of-second выходной нуль, три, шесть или девять цифр цифр по мере необходимости. Анализируя, время к, по крайней мере, полю секунд требуется. Доли секунды от нуля до девять анализируются. Локализованный десятичный стиль не используется.
Это - средство форматирования особого случая, предназначенное, чтобы позволить удобочитаемую форму Instant
. Instant
class разрабатывается, чтобы только представить момент времени и внутренне хранит значение в наносекундах от фиксированной эпохи 1970-01-01Z. Также, Instant
не может быть отформатирован как дата или время, не обеспечивая некоторую форму часового пояса. Это средство форматирования позволяет Instant
быть отформатированным, обеспечивая подходящее использование преобразования ZoneOffset.UTC
.
Формат состоит из:
ISO_OFFSET_DATE_TIME
где момент преобразовывается из ChronoField.INSTANT_SECONDS
и ChronoField.NANO_OF_SECOND
использование UTC
смещение. Парсинг является нечувствительным к регистру. У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует STRICT
стиль преобразователя.
public static final DateTimeFormatter BASIC_ISO_DATE
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу ISO 8601 основной локальный формат даты. Формат состоит из:
year
. Только годы в диапазоне 0000 к 9999 поддерживаются. month-of-year
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. day-of-month
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. offset ID
без двоеточий. Если у смещения будут секунды тогда, то они будут обработаны даже при том, что это не часть стандарта ISO 8601. Парсинг является нечувствительным к регистру. Поскольку у этого средства форматирования есть дополнительный элемент, может быть необходимо проанализировать использование parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...)
.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует STRICT
стиль преобразователя.
public static final DateTimeFormatter RFC_1123_DATE_TIME
Это возвращает неизменное средство форматирования, способное к форматированию и парсингу большей части формата RFC 1123. RFC 1123 обновляет RFC 822, изменяющий год от двух цифр до четыре. Эта реализация требует года из четырех знаков. Эта реализация также не обрабатывает североамериканские или военные имена зон, только 'GMT' и смещать количество.
Формат состоит из:
day-of-week
на английском языке. day-of-month
. month-of-year
на английском языке. year
. Только годы в диапазоне 0000 к 9999 поддерживаются. hour-of-day
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. minute-of-hour
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. second-of-minute
. Это предварительно дополняется нулем, чтобы гарантировать две цифры. offset ID
без двоеточий или секунды. Смещение нулевого использования "GMT". Североамериканские имена зон и военные имена зон не обрабатываются. Парсинг является нечувствительным к регистру.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует SMART
стиль преобразователя.
public static DateTimeFormatter ofPattern(String pattern)
Этот метод создаст средство форматирования, основанное на простом образце букв и символов как описано в документации class. Например, d MMM uuuu
отформатирует 03.12.2011 как '3 декабря 2011'.
Средство форматирования будет использовать default FORMAT locale
. Это может быть изменено, используя withLocale(Locale)
на возвращенном средстве форматирования Alternatively используют ofPattern(String, Locale)
разновидность этого метода.
У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует SMART
стиль преобразователя.
pattern
- образец, чтобы использовать, не нульIllegalArgumentException
- если образец недопустимDateTimeFormatterBuilder.appendPattern(String)
public static DateTimeFormatter ofPattern(String pattern, Locale locale)
Этот метод создаст средство форматирования, основанное на простом образце букв и символов как описано в документации class. Например, d MMM uuuu
отформатирует 03.12.2011 как '3 декабря 2011'.
Средство форматирования будет использовать указанную локаль. Это может быть изменено, используя withLocale(Locale)
на возвращенном средстве форматирования
У возвращенного средства форматирования нет никакой хронологии переопределения или зоны. Это использует SMART
стиль преобразователя.
pattern
- образец, чтобы использовать, не нульlocale
- локаль, чтобы использовать, не нульIllegalArgumentException
- если образец недопустимDateTimeFormatterBuilder.appendPattern(String)
public static DateTimeFormatter ofLocalizedDate(FormatStyle dateStyle)
Это возвращает средство форматирования, которое отформатирует или проанализирует дату. Точный используемый образец формата изменяется локалью.
Локаль определяется от средства форматирования. Средство форматирования, возвращенное непосредственно этим методом, будет использовать default FORMAT locale
. Локалью можно управлять, используя withLocale(Locale)
на результате этого метода.
Отметьте, что локализованный образец ищется лениво. Это DateTimeFormatter
содержит требуемый стиль и локаль, ища образец, требуемый по требованию.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует SMART
стиль преобразователя.
dateStyle
- стиль средства форматирования, чтобы получить, не нульpublic static DateTimeFormatter ofLocalizedTime(FormatStyle timeStyle)
Это возвращает средство форматирования, которое отформатирует или проанализирует время. Точный используемый образец формата изменяется локалью.
Локаль определяется от средства форматирования. Средство форматирования, возвращенное непосредственно этим методом, будет использовать default FORMAT locale
. Локалью можно управлять, используя withLocale(Locale)
на результате этого метода.
Отметьте, что локализованный образец ищется лениво. Это DateTimeFormatter
содержит требуемый стиль и локаль, ища образец, требуемый по требованию.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует SMART
стиль преобразователя.
timeStyle
- стиль средства форматирования, чтобы получить, не нульpublic static DateTimeFormatter ofLocalizedDateTime(FormatStyle dateTimeStyle)
Это возвращает средство форматирования, которое отформатирует или проанализирует разовое датой. Точный используемый образец формата изменяется локалью.
Локаль определяется от средства форматирования. Средство форматирования, возвращенное непосредственно этим методом, будет использовать default FORMAT locale
. Локалью можно управлять, используя withLocale(Locale)
на результате этого метода.
Отметьте, что локализованный образец ищется лениво. Это DateTimeFormatter
содержит требуемый стиль и локаль, ища образец, требуемый по требованию.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует SMART
стиль преобразователя.
dateTimeStyle
- стиль средства форматирования, чтобы получить, не нульpublic static DateTimeFormatter ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle)
Это возвращает средство форматирования, которое отформатирует или проанализирует разовое датой. Точный используемый образец формата изменяется локалью.
Локаль определяется от средства форматирования. Средство форматирования, возвращенное непосредственно этим методом, будет использовать default FORMAT locale
. Локалью можно управлять, используя withLocale(Locale)
на результате этого метода.
Отметьте, что локализованный образец ищется лениво. Это DateTimeFormatter
содержит требуемый стиль и локаль, ища образец, требуемый по требованию.
У возвращенного средства форматирования есть хронология набора ISO, чтобы гарантировать, что даты в других календарных системах правильно преобразовываются. Это не имеет никакой зоны переопределения и использует SMART
стиль преобразователя.
dateStyle
- средство форматирования даты разрабатывает, чтобы получить, не нульtimeStyle
- средство форматирования времени разрабатывает, чтобы получить, не нульpublic static final TemporalQuery<Period> parsedExcessDays()
Это возвращает одноэлементный запрос, который обеспечивает доступ к дополнительной информации от синтаксического анализа. Запрос всегда возвращает ненулевой период с нулевым периодом, возвращенным вместо нуля.
Есть две ситуации, куда этот запрос может возвратить ненулевой период.
ResolverStyle
LENIENT
и время анализируется без даты, тогда полный результат синтаксического анализа состоит из a LocalTime
и избыток Period
в днях.
ResolverStyle
SMART
и время анализируется без даты, где время является 24:00:00, тогда полный результат синтаксического анализа состоит из a LocalTime
из 0:00:00 и избытка Period
из одного дня. В обоих случаях, если полное ChronoLocalDateTime
или Instant
анализируется, тогда избыточные дни добавляются к части даты. В результате этот запрос возвратит нулевой период.
SMART
поведение обрабатывает общий "конец дня" 24:00 значение. Обработка в LENIENT
режим также приводит к тому же самому результату:
Text to parse Parsed object Excess days "2012-12-03T00:00" LocalDateTime.of(2012, 12, 3, 0, 0) ZERO "2012-12-03T24:00" LocalDateTime.of(2012, 12, 4, 0, 0) ZERO "00:00" LocalTime.of(0, 0) ZERO "24:00" LocalTime.of(0, 0) Period.ofDays(1)Запрос может использоваться следующим образом:
TemporalAccessor parsed = formatter.parse(str); LocalTime time = parsed.query(LocalTime::from); Period extraDays = parsed.query(DateTimeFormatter.parsedExcessDays());
public static final TemporalQuery<Boolean> parsedLeapSecond()
Это возвращает одноэлементный запрос, который обеспечивает доступ к дополнительной информации от синтаксического анализа. Запрос всегда возвращает ненуль, булев, истинный, если парсинг видел с секундой прыжка, ложное если нет.
Мгновенный парсинг обрабатывает специальный "прыжок во второй" раз '23:59:60'. Секунды прыжка происходят в '23:59:60' в часовом поясе UTC, но в другое местное время в различных часовых поясах. Чтобы избежать этой потенциальной неоднозначности, обработка секунд прыжка ограничивается DateTimeFormatterBuilder.appendInstant()
, поскольку тот метод всегда анализирует момент со смещением зоны UTC.
Если время '23:59:60' получается, то простое преобразование применяется, заменяя второй-минутного из 60 с 59. Этот запрос может использоваться на результате синтаксического анализа определить, была ли корректировка с секундой прыжка внесена. Запрос возвратит одну секунду избытка, если это действительно корректировалось, чтобы удалить с секундой прыжка, и нуль если нет. Отметьте, что применение механизма сглаживания с секундой прыжка, такого как SL UTC, является ответственностью приложения, следующим образом:
TemporalAccessor parsed = formatter.parse(str); Instant instant = parsed.query(Instant::from); if (parsed.query(DateTimeFormatter.parsedLeapSecond())) { // validate leap-second is correct and apply correct smoothing }
public Locale getLocale()
Это привыкло к поиску любая часть средства форматирования, нуждающегося в определенной локализации, такой как текст или локализованный образец.
public DateTimeFormatter withLocale(Locale locale)
Это привыкло к поиску любая часть средства форматирования, нуждающегося в определенной локализации, такой как текст или локализованный образец.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
locale
- новая локаль, не нульpublic DecimalStyle getDecimalStyle()
public DateTimeFormatter withDecimalStyle(DecimalStyle decimalStyle)
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
decimalStyle
- новый DecimalStyle, не нульpublic Chronology getChronology()
Это возвращает хронологию переопределения, используемую, чтобы преобразовать даты. По умолчанию у средства форматирования нет никакой хронологии переопределения, возвращая нуль. См. withChronology(Chronology)
для большего количества деталей о переопределении.
public DateTimeFormatter withChronology(Chronology chrono)
Это возвращает средство форматирования с подобным состоянием к этому средству форматирования, но с набором хронологии переопределения. По умолчанию у средства форматирования нет никакой хронологии переопределения, возвращая нуль.
Если переопределение будет добавлено, то на любую дату, которая форматируется или анализируется, будут влиять.
Форматируя, если временный объект будет содержать дату, то он будет преобразован в дату в хронологии переопределения. Содержит ли временное дату, определяется, запрашивая EPOCH_DAY
поле. Любое время или зона будут сохранены неизменные если не переопределено.
Если временный объект не содержит дату, но действительно содержит один или больше ChronoField
поля даты, тогда a DateTimeException
бросается. Во всех других случаях хронология переопределения добавляется к временному, заменяя любую предыдущую хронологию, но не изменяя дату/время.
Анализируя, есть два отличных случая, чтобы рассмотреть. Если хронология была проанализирована непосредственно из текста, возможно потому что DateTimeFormatterBuilder.appendChronologyId()
использовался, тогда эта хронология переопределения не имеет никакого эффекта. Если никакая зона не была проанализирована, то эта хронология переопределения будет использоваться, чтобы интерпретировать ChronoField
значения в дату согласно правилам разрешения даты хронологии.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
chrono
- новая хронология, нуль, если никакое переопределениеpublic ZoneId getZone()
Это возвращает зону переопределения, используемую, чтобы преобразовать моменты. По умолчанию у средства форматирования нет никакой зоны переопределения, возвращая нуль. См. withZone(ZoneId)
для большего количества деталей о переопределении.
public DateTimeFormatter withZone(ZoneId zone)
Это возвращает средство форматирования с подобным состоянием к этому средству форматирования, но с набором зоны переопределения. По умолчанию у средства форматирования нет никакой зоны переопределения, возвращая нуль.
Если переопределение будет добавлено, то на любой момент, который форматируется или анализируется, будут влиять.
Форматируя, если временный объект будет содержать момент, то он будет преобразован в зонное разовое датой использование зоны переопределения. Является ли временным момент, определяется, запрашивая INSTANT_SECONDS
поле. Если у ввода будет хронология тогда, то он будет сохранен если не переопределено. Если у ввода нет хронологии, такой как Instant
, тогда хронология ISO будет использоваться.
Если временный объект не содержит момент, но действительно содержит смещение тогда осуществляется, дополнительная проверка. Если нормализованная зона переопределения является смещением, которое отличается от смещения временного, то a DateTimeException
бросается. Во всех других случаях зона переопределения добавляется к временному, заменяя любую предыдущую зону, но не изменяя дату/время.
Анализируя, есть два отличных случая, чтобы рассмотреть. Если зона была проанализирована непосредственно из текста, возможно потому что DateTimeFormatterBuilder.appendZoneId()
использовался, тогда эта зона переопределения не имеет никакого эффекта. Если никакая зона не была проанализирована, то эта зона переопределения будет включена в результат синтаксического анализа, где это может использоваться, чтобы создать моменты и времена даты.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
zone
- новая зона переопределения, нуль, если никакое переопределениеpublic ResolverStyle getResolverStyle()
Это возвращает стиль преобразователя, используемый во время второй фазы парсинга, когда поля разрешаются в даты и времена. По умолчанию средство форматирования имеет SMART
стиль преобразователя. См. withResolverStyle(ResolverStyle)
для большего количества деталей.
public DateTimeFormatter withResolverStyle(ResolverStyle resolverStyle)
Это возвращает средство форматирования с подобным состоянием к этому средству форматирования, но с набором стиля преобразователя. По умолчанию средство форматирования имеет SMART
стиль преобразователя.
Изменение преобразователя разрабатывает, только имеет эффект во время парсинга. Парсинг текстовой строки происходит в двух фазах. Фаза 1 является основным текстовым синтаксическим анализом согласно полям, добавленным к разработчику. Фаза 2 разрешает проанализированных пар значения поля в объекты времени и/или дату. Стиль преобразователя используется, чтобы управлять, как фаза 2, разрешение, происходит. См. ResolverStyle
для получения дополнительной информации о доступных опциях.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
resolverStyle
- новый стиль преобразователя, не нульpublic Set<TemporalField> getResolverFields()
Это возвращает поля преобразователя, используемые во время второй фазы парсинга, когда поля разрешаются в даты и времена. По умолчанию средство форматирования не имеет никаких полей преобразователя, и таким образом возвращает нуль. См. withResolverFields(Set)
для большего количества деталей.
public DateTimeFormatter withResolverFields(TemporalField... resolverFields)
Это возвращает средство форматирования с подобным состоянием к этому средству форматирования, но с полевым набором преобразователя. По умолчанию у средства форматирования нет никаких полей преобразователя.
Изменение полей преобразователя только имеет эффект во время парсинга. Парсинг текстовой строки происходит в двух фазах. Фаза 1 является основным текстовым синтаксическим анализом согласно полям, добавленным к разработчику. Фаза 2 разрешает проанализированных пар значения поля в объекты времени и/или дату. Поля преобразователя используются, чтобы фильтровать пар значения поля между фазой 1 и 2.
Это может использоваться, чтобы выбрать между двумя или больше способами, которыми могла бы быть разрешена дата или время. Например, если средство форматирования состоит из года, месяца, дня-месячного и дня-летнего, то есть два способа разрешить дату. Вызов этого метода с параметрами YEAR
и DAY_OF_YEAR
гарантирует, что дата разрешается, используя год и день-летнего, эффективно означая, что месяц и день-месячного игнорируются во время фазы разрешения.
Подобным образом этот метод может использоваться, чтобы проигнорировать вторичные поля, которые были бы иначе перепроверены. Например, если средство форматирования состоит из года, месяца, дня-месячного и дня-недельного, то есть только один способ разрешить дату, но проанализированное значение в течение дня-недельного будет перепроверено против разрешенной даты. Вызов этого метода с параметрами YEAR
, MONTH_OF_YEAR
и DAY_OF_MONTH
гарантирует, что дата разрешается правильно, но без любой двойной проверки в течение дня-недельного.
В условиях реализации этот метод ведет себя следующим образом. Результатом фазы парсинга, как могут полагать, является карта поля, чтобы оценить. Поведение этого метода должно заставить ту карту фильтроваться между фазой 1 и 2, удаляя все поля кроме определенных как параметры этому методу.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
resolverFields
- новый набор полей преобразователя, нуль, если никакие поляpublic DateTimeFormatter withResolverFields(Set<TemporalField> resolverFields)
Это возвращает средство форматирования с подобным состоянием к этому средству форматирования, но с полевым набором преобразователя. По умолчанию у средства форматирования нет никаких полей преобразователя.
Изменение полей преобразователя только имеет эффект во время парсинга. Парсинг текстовой строки происходит в двух фазах. Фаза 1 является основным текстовым синтаксическим анализом согласно полям, добавленным к разработчику. Фаза 2 разрешает проанализированных пар значения поля в объекты времени и/или дату. Поля преобразователя используются, чтобы фильтровать пар значения поля между фазой 1 и 2.
Это может использоваться, чтобы выбрать между двумя или больше способами, которыми могла бы быть разрешена дата или время. Например, если средство форматирования состоит из года, месяца, дня-месячного и дня-летнего, то есть два способа разрешить дату. Вызов этого метода с параметрами YEAR
и DAY_OF_YEAR
гарантирует, что дата разрешается, используя год и день-летнего, эффективно означая, что месяц и день-месячного игнорируются во время фазы разрешения.
Подобным образом этот метод может использоваться, чтобы проигнорировать вторичные поля, которые были бы иначе перепроверены. Например, если средство форматирования состоит из года, месяца, дня-месячного и дня-недельного, то есть только один способ разрешить дату, но проанализированное значение в течение дня-недельного будет перепроверено против разрешенной даты. Вызов этого метода с параметрами YEAR
, MONTH_OF_YEAR
и DAY_OF_MONTH
гарантирует, что дата разрешается правильно, но без любой двойной проверки в течение дня-недельного.
В условиях реализации этот метод ведет себя следующим образом. Результатом фазы парсинга, как могут полагать, является карта поля, чтобы оценить. Поведение этого метода должно заставить ту карту фильтроваться между фазой 1 и 2, удаляя все поля кроме определенных как параметры этому методу.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
resolverFields
- новый набор полей преобразователя, нуль, если никакие поляpublic String format(TemporalAccessor temporal)
Это форматирует разовое датой к Строке, используя правила средства форматирования.
temporal
- временный объект отформатировать, не нульDateTimeException
- если ошибка происходит во время форматированияpublic void formatTo(TemporalAccessor temporal, Appendable appendable)
Appendable
использование этого средства форматирования. Это выводит отформатированное разовое датой указанному месту назначения. Appendable
интерфейс общего назначения, который реализуется всеми ключевыми классами вывода символов включая StringBuffer
, StringBuilder
, PrintStream
и Writer
.
Хотя Appendable
методы бросают IOException
, этот метод не делает. Вместо этого любой IOException
обертывается в исключение на этапе выполнения.
temporal
- временный объект отформатировать, не нульappendable
- appendable, чтобы отформатировать к, не нульDateTimeException
- если ошибка происходит во время форматированияpublic TemporalAccessor parse(CharSequence text)
Это анализирует весь текст, производящий временный объект. Обычно более полезно использовать parse(CharSequence, TemporalQuery)
. Результат этого метода TemporalAccessor
который был разрешен, применяя основные проверки проверки допустимости, чтобы помочь гарантировать допустимое разовое датой.
Если синтаксический анализ завершается, не читая всю длину текста, или проблема происходит во время парсинга или слияния, то исключение выдается.
text
- текст, чтобы проанализировать, не нульDateTimeParseException
- если неспособный проанализировать требуемый результатpublic TemporalAccessor parse(CharSequence text, ParsePosition position)
Это анализирует текст, не требуя, чтобы синтаксический анализ запустился с начала строки или конца в конце. Результат этого метода TemporalAccessor
который был разрешен, применяя основные проверки проверки допустимости, чтобы помочь гарантировать допустимое разовое датой.
Текст будет проанализирован от указанного запуска ParsePosition
. Вся длина текста не должна быть проанализирована, ParsePosition
будет обновлен с индексированием в конце парсинга.
Работа этого метода немного отличается к подобному использованию методов ParsePosition
на java.text.Format
. Тот class возвратится, ошибки, используя ошибку индексируют на ParsePosition
. В отличие от этого, этот метод бросит a DateTimeParseException
если ошибка происходит, с исключением, содержащим ошибку, индексируют. Это изменение в поведении необходимо из-за увеличенной сложности парсинга и разрешения дат/времен в этом API.
Если средство форматирования проанализирует то же самое поле не раз с различными значениями, то результатом будет ошибка.
text
- текст, чтобы проанализировать, не нульposition
- позиция, чтобы проанализировать от, обновленный с проанализированной длиной и индексирование любой ошибки, не нульDateTimeParseException
- если неспособный проанализировать требуемый результатIndexOutOfBoundsException
- если позиция недопустимаpublic <T> T parse(CharSequence text, TemporalQuery<T> query)
Большинство приложений должно использовать этот метод для того, чтобы проанализировать. Это анализирует весь текст, чтобы произвести необходимое разовое датой. Запрос обычно является ссылкой метода на a from(TemporalAccessor)
метод. Например:
LocalDateTime dt = parser.parse(str, LocalDateTime::from);Если синтаксический анализ завершается, не читая всю длину текста, или проблема происходит во время парсинга или слияния, то исключение выдается.
T
- тип проанализированного разового датойtext
- текст, чтобы проанализировать, не нульquery
- запрос, определяющий тип, чтобы проанализировать к, не нульDateTimeParseException
- если неспособный проанализировать требуемый результатpublic TemporalAccessor parseBest(CharSequence text, TemporalQuery<?>... queries)
Этот метод синтаксического анализа удобен для использования, когда синтаксический анализатор может обработать дополнительные элементы. Например, образец 'uuuu-MM-dd HH.mm [VV]' может быть полностью проанализирован к a ZonedDateTime
, или частично проанализированный к a LocalDateTime
. Запросы должны быть определены в порядке, запускающемся с лучшей опции полного синтаксического анализа соответствия и окончания худшей соответствующей минимальной опцией синтаксического анализа. Запрос обычно является ссылкой метода на a from(TemporalAccessor)
метод.
Результат связывается с первым типом, который это успешно анализирует. Обычно, приложения будут использовать instanceof
проверять результат. Например:
TemporalAccessor dt = parser.parseBest(str, ZonedDateTime::from, LocalDateTime::from); if (dt instanceof ZonedDateTime) { ... } else { ... }Если синтаксический анализ завершается, не читая всю длину текста, или проблема происходит во время парсинга или слияния, то исключение выдается.
text
- текст, чтобы проанализировать, не нульqueries
- запросы, определяющие типы, чтобы попытаться проанализировать к, должны реализовать TemporalAccessor
, не нульIllegalArgumentException
- если меньше чем 2 типа определяютсяDateTimeParseException
- если неспособный проанализировать требуемый результатpublic TemporalAccessor parseUnresolved(CharSequence text, ParsePosition position)
Парсинг реализуется как двухфазная работа. Во-первых, текст анализируется, используя расположение, определенное средством форматирования, производя a Map
из поля, чтобы оценить, a ZoneId
и a Chronology
. Во-вторых, проанализированные данные разрешаются, проверяя, объединяясь и упрощая различные поля в более полезные. Этот метод выполняет этап парсинга, но не этап разрешения.
Результат этого метода TemporalAccessor
который представляет данные как замечено во вводе. Значения не проверяются, таким образом анализируя строку даты '2012-00-65' привел бы к временному с тремя полями - год '2012', месяц '0' и день-месячного '65'.
Текст будет проанализирован от указанного запуска ParsePosition
. Вся длина текста не должна быть проанализирована, ParsePosition
будет обновлен с индексированием в конце парсинга.
Ошибки возвращаются, используя ошибку, индексируют поле ParsePosition
вместо DateTimeParseException
. Возвращенная ошибка индексирует, будет установлен в индексирование показательного из ошибки. Вызывающие стороны должны проверить на ошибки перед использованием контекста.
Если средство форматирования проанализирует то же самое поле не раз с различными значениями, то результатом будет ошибка.
Этот метод предназначается для усовершенствованных вариантов использования, которые должны получить доступ к внутреннему состоянию во время парсинга. Типичный код программы должен использовать parse(CharSequence, TemporalQuery)
или метод синтаксического анализа на целевом типе.
text
- текст, чтобы проанализировать, не нульposition
- позиция, чтобы проанализировать от, обновленный с проанализированной длиной и индексирование любой ошибки, не нульDateTimeException
- если некоторая проблема происходит во время парсингаIndexOutOfBoundsException
- если позиция недопустимаpublic Format toFormat()
java.text.Format
экземпляр. Возвращенный Format
экземпляр отформатирует любого TemporalAccessor
и синтаксические анализы к разрешенному TemporalAccessor
.
Исключения будут следовать за определениями Format
, см. те методы для деталей о IllegalArgumentException
во время форматирования и ParseException
или нуль во время парсинга. Формат не поддерживает приписывание возвращенной строки формата.
public Format toFormat(TemporalQuery<?> parseQuery)
java.text.Format
экземпляр, который проанализирует использование указанного запроса. Возвращенный Format
экземпляр отформатирует любого TemporalAccessor
и синтаксические анализы к типу определяются. Тип должен быть тем, который поддерживается parse(java.lang.CharSequence)
.
Исключения будут следовать за определениями Format
, см. те методы для деталей о IllegalArgumentException
во время форматирования и ParseException
или нуль во время парсинга. Формат не поддерживает приписывание возвращенной строки формата.
parseQuery
- запрос, определяющий тип, чтобы проанализировать к, не нуль
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92