Поделиться через


DateTimeFormatter.WithResolverFields Метод

Определение

Перегрузки

WithResolverFields(ITemporalField[])
WithResolverFields(ICollection<ITemporalField>)

Возвращает копию этого модуля форматирования с новым набором полей сопоставителя.

WithResolverFields(ITemporalField[])

[Android.Runtime.Register("withResolverFields", "([Ljava/time/temporal/TemporalField;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)]
public Java.Time.Format.DateTimeFormatter? WithResolverFields (params Java.Time.Temporal.ITemporalField[]? resolverFields);
[<Android.Runtime.Register("withResolverFields", "([Ljava/time/temporal/TemporalField;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)>]
member this.WithResolverFields : Java.Time.Temporal.ITemporalField[] -> Java.Time.Format.DateTimeFormatter

Параметры

resolverFields
ITemporalField[]

Возвращаемое значение

Атрибуты

Применяется к

WithResolverFields(ICollection<ITemporalField>)

Возвращает копию этого модуля форматирования с новым набором полей сопоставителя.

[Android.Runtime.Register("withResolverFields", "(Ljava/util/Set;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)]
public Java.Time.Format.DateTimeFormatter? WithResolverFields (System.Collections.Generic.ICollection<Java.Time.Temporal.ITemporalField>? resolverFields);
[<Android.Runtime.Register("withResolverFields", "(Ljava/util/Set;)Ljava/time/format/DateTimeFormatter;", "", ApiSince=26)>]
member this.WithResolverFields : System.Collections.Generic.ICollection<Java.Time.Temporal.ITemporalField> -> Java.Time.Format.DateTimeFormatter

Параметры

resolverFields
ICollection<ITemporalField>

новый набор полей сопоставителя, null, если поля отсутствуют

Возвращаемое значение

Формататор на основе этого модуля форматирования с запрошенным стилем сопоставителя, а не null

Атрибуты

Комментарии

Возвращает копию этого модуля форматирования с новым набором полей сопоставителя.

Это возвращает формататор с аналогичным состоянием этого модуля форматирования, но с набором полей сопоставителя. По умолчанию у модуля форматирования нет полей сопоставителя.

Изменение полей сопоставителя действует только во время синтаксического анализа. Анализ текстовой строки выполняется на двух этапах. Этап 1 — это базовый анализ текста в соответствии с полями, добавленными в построитель. Этап 2 разрешает пары синтаксического значения поля в объекты даты и времени или времени. Поля сопоставителя используются для фильтрации пар "значение поля" между этапом 1 и 2.

Это можно использовать для выбора двух или более способов разрешения даты или времени. Например, если форматировщик состоит из года, месяца, дня месяца и дня года, то существует два способа разрешения даты. Вызов этого метода с аргументами ChronoField#YEAR YEAR и ChronoField#DAY_OF_YEAR DAY_OF_YEAR обеспечит разрешение даты с помощью года и дня года, что означает, что месяц и день месяца игнорируются на этапе разрешения.

Аналогичным образом этот метод можно использовать для пропуска дополнительных полей, которые в противном случае будут перекрестно проверены. Например, если форматировщик состоит из года, месяца, дня месяца и дня недели, то существует только один способ разрешения даты, но проанализированное значение для дня недели будет перекрестно проверяться на разрешенную дату. Вызов этого метода с аргументами ChronoField#YEAR YEARChronoField#MONTH_OF_YEAR MONTH_OF_YEAR и ChronoField#DAY_OF_MONTH DAY_OF_MONTH гарантирует правильность разрешения даты, но без перекрестной проверки на день недели.

В терминах реализации этот метод ведет себя следующим образом. Результат этапа синтаксического анализа можно считать картой поля со значением. Поведение этого метода заключается в том, что сопоставление фильтруется между этапом 1 и 2, удаляя все поля, отличные от указанных в качестве аргументов для этого метода.

Этот экземпляр неизменяем и не влияет на этот вызов метода.

Документация по Java для java.time.format.DateTimeFormatter.withResolverFields(java.util.Set<java.time.temporal.TemporalField>).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к