Класс DateFormat
- Все реализуемые интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
SimpleDateFormat
public abstract class DateFormat extends Format
DateFormat — это абстрактный класс для подклассов форматирования дат/времени, который форматирует и анализирует даты или время независимо от языка. Подкласс форматирования дат/времени, такой как SimpleDateFormat, позволяет выполнять форматирование (т. е., дата → текст), разбор (текст → дата) и нормализацию. Дата представлена как объект Date или как миллисекунды с начала 1 января 1970 г., 00:00:00 GMT. DateFormat предоставляет множество методов класса для получения стандартных форматировщиков дат/времени на основе стандартного или заданного региона и ряда стилей форматирования. К стилям форматирования относятся FULL, LONG, MEDIUM и SHORT. Более подробные сведения и примеры использования этих стилей приведены в описаниях методов.
DateFormat помогает форматировать и анализировать даты для любого региона. Ваш код может быть полностью независимым от правил региона для месяцев, дней недели или даже формата календаря: лунный или солнечный.
Для форматирования даты для текущего региона используйте один из статических методов-фабрик:
myString = DateFormat.getDateInstance().format(myDate);
Если вы форматируете несколько дат, более эффективно получить форматировщик и использовать его несколько раз, чтобы система не должна была многократно получать информацию о правилах языка и страны.
DateFormat df = DateFormat.getDateInstance(); for (int i = 0; i < myDate.length; ++i) { output.println(df.format(myDate[i]) + "; "); }
Для форматирования даты для другого региона укажите его в вызове getDateInstance().
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
Если указанный регион содержит «ca» (календарь), «rg» (переопределение региона) и/или «tz» (часовой пояс) расширения Unicode, календарь, страна и/или часовой пояс для форматирования перезаписываются. Если указаны как «ca», так и «rg», календарь из расширения «ca» имеет приоритет над неявным календарём из расширения «rg».
Вы также можете использовать DateFormat для анализа.
myDate = df.parse(myString);
Используйте getDateInstance для получения стандартного формата даты для этой страны. Доступны и другие статические методы-фабрики. Используйте getTimeInstance для получения формата времени для этой страны. Используйте getDateTimeInstance для получения формата даты и времени. Вы можете передавать различные параметры в эти методы-фабрики для управления длиной результата; от SHORT до MEDIUM до LONG до FULL. Точный результат зависит от региона, но, как правило:
-
SHORT— полностью числовой, такой как12.13.52или3:30pm -
MEDIUM— более длинный, такой какJan 12, 1952 -
LONG— более длинный, такой какJanuary 12, 1952или3:30:32pm -
FULL— довольно полностью определённый, такой какTuesday, April 12, 1952 AD or 3:30:42pm PST.
Вы также можете задать часовой пояс в формате, если хотите. Если вам нужен ещё больший контроль над форматированием или разбором (или вы хотите предоставить пользователям больший контроль), вы можете попробовать привести DateFormat, полученное из методов-фабрик, к типу SimpleDateFormat. Это будет работать для большинства стран; просто помните, что поместите его в try блок на случай, если вы столкнётесь с необычным.
Вы также можете использовать формы методов parse и format с ParsePosition и FieldPosition, чтобы позволить вам
- постепенно анализировать части строки.
- выравнивать любой конкретный элемент или находить его для выбора на экране.
Синхронизация
Форматы дат не синхронизированы. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если к формату обращаются несколько потоков одновременно, он должен быть синхронизирован внешним образом.
- Примечание API:
- Рассмотрите возможность использования
DateTimeFormatterв качестве неизменяемой и потокобезопасной альтернативы. - Требования к реализации:
- Методы
format(Date, StringBuffer, FieldPosition)иparse(String, ParsePosition)могут вызыватьNullPointerException, если какой-либо из их параметров являетсяnull. Подкласс может предоставить свою собственную реализацию и описаниеNullPointerException. - Методы
setCalendar(Calendar),setNumberFormat(NumberFormat)иsetTimeZone(TimeZone)не вызываютNullPointerExceptionпри передаче в качестве параметраnull, но любые последующие операции с тем же экземпляром могут вызыватьNullPointerException. - Методы
getCalendar(),getNumberFormat()иgetTimeZone()могут возвращатьnull, если соответствующие значения этого экземпляра установлены вnullчерез соответствующие методы-сеттеры. Например:getTimeZone()может вернутьnull, если значениеTimeZoneэтого экземпляра установлено какsetTimeZone(null).
- Методы
- С момента:
- 1.1
- См. также:
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
static class |
DateFormat.Field |
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator возвращаемом DateFormat.formatToCharacterIterator и в качестве идентификаторов полей в FieldPosition. |
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
static final int |
AM_PM_FIELD |
Полезная константа для выравнивания поля AM_PM. |
protected Calendar |
calendar |
Экземпляр Calendar, используемый для вычисления полей даты и времени и момента времени. |
static final int |
DATE_FIELD |
Полезная константа для выравнивания поля DATE. |
static final int |
DAY_OF_WEEK_FIELD |
Полезная константа для выравнивания поля DAY_OF_WEEK. |
static final int |
DAY_OF_WEEK_IN_MONTH_FIELD |
Полезная константа для выравнивания поля DAY_OF_WEEK_IN_MONTH. |
static final int |
DAY_OF_YEAR_FIELD |
Полезная константа для выравнивания поля DAY_OF_YEAR. |
static final int |
DEFAULT |
Константа для шаблона формата по умолчанию. |
static final int |
ERA_FIELD |
Полезная константа для выравнивания поля ERA. |
static final int |
FULL |
Константа для шаблона формата "полностью". |
static final int |
HOUR_OF_DAY0_FIELD |
Полезная константа для выравнивания поля HOUR_OF_DAY (от 0). |
static final int |
HOUR_OF_DAY1_FIELD |
Полезная константа для выравнивания поля HOUR_OF_DAY (от 1). |
static final int |
HOUR0_FIELD |
Полезная константа для выравнивания поля HOUR (от 0). |
static final int |
HOUR1_FIELD |
Полезная константа для выравнивания поля HOUR (от 1). |
static final int |
LONG |
Константа для шаблона формата "полностью". |
static final int |
MEDIUM |
Константа для шаблона формата "средний". |
static final int |
MILLISECOND_FIELD |
Полезная константа для выравнивания поля MILLISECOND. |
static final int |
MINUTE_FIELD |
Полезная константа для выравнивания поля MINUTE. |
static final int |
MONTH_FIELD |
Полезная константа для выравнивания поля MONTH. |
protected NumberFormat |
numberFormat |
Форматировщик чисел, используемый для форматирования чисел в датах и временах. |
static final int |
SECOND_FIELD |
Полезная константа для выравнивания поля SECOND. |
static final int |
SHORT |
Константа для шаблона формата "коротко". |
static final int |
TIMEZONE_FIELD |
Полезная константа для выравнивания поля TIMEZONE. |
static final int |
WEEK_OF_MONTH_FIELD |
Полезная константа для выравнивания поля WEEK_OF_MONTH. |
static final int |
WEEK_OF_YEAR_FIELD |
Полезная константа для выравнивания поля WEEK_OF_YEAR. |
static final int |
YEAR_FIELD |
Полезная константа для выравнивания поля YEAR. |
Краткое описание конструкторов
| Modifier | Constructor | Description |
|---|---|---|
protected |
Создать новый формат даты. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable |
boolean |
equals |
Переопределяет equals |
final StringBuffer |
format |
Форматирует заданный Object в строку даты и времени. |
final String |
format |
Форматирует Date в строку даты и времени. |
abstract StringBuffer |
format |
Форматирует Date в строку даты и времени. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех языковых наборов, для которых методы этого класса могут возвращать локализованные экземпляры. |
Calendar |
getCalendar() |
Возвращает календарь, связанный с этим форматировщиком даты/времени. |
static final DateFormat |
getDateInstance() |
Возвращает форматировщик даты с форматом по умолчанию для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getDateInstance |
Возвращает форматировщик даты с заданным стилем форматирования для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getDateInstance |
Возвращает форматировщик даты с заданным стилем форматирования для заданного языкового набора. |
static final DateFormat |
getDateTimeInstance() |
Возвращает форматировщик даты и времени с форматом по умолчанию для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getDateTimeInstance |
Возвращает форматировщик даты и времени с заданными стилями форматирования даты и времени для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getDateTimeInstance |
Возвращает форматировщик даты и времени с заданными стилями форматирования для заданного языкового набора. |
static final DateFormat |
getInstance() |
Возвращает форматировщик даты и времени по умолчанию, использующий стиль SHORT для даты и времени. |
NumberFormat |
getNumberFormat() |
Возвращает форматировщик чисел, используемый этим форматировщиком даты и времени для форматирования и разбора времени. |
static final DateFormat |
getTimeInstance() |
Возвращает форматировщик времени с форматом по умолчанию для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getTimeInstance |
Возвращает форматировщик времени с заданным стилем форматирования для языкового набора по умолчанию FORMAT. |
static final DateFormat |
getTimeInstance |
Возвращает форматировщик времени с заданным стилем форматирования для заданного языкового набора. |
TimeZone |
getTimeZone() |
Возвращает часовой пояс. |
int |
hashCode() |
Переопределяет hashCode |
boolean |
isLenient() |
Указывает, должен ли разбор даты/времени быть гибким. |
Date |
parse |
Разбирает текст с начала заданной строки, чтобы получить дату. |
abstract Date |
parse |
Разбирает строку даты и времени в соответствии с заданным положением разбора. |
Object |
parseObject |
Разбирает текст из строки, чтобы получить Date. |
void |
setCalendar |
Устанавливает календарь, используемый этим форматом даты. |
void |
setLenient |
Указывает, должен ли разбор даты/времени быть гибким. |
void |
setNumberFormat |
Позволяет установить форматировщик чисел. |
void |
setTimeZone |
Устанавливает часовой пояс для календаря этого объекта DateFormat. |
Методы, объявленные в классе java.text.Format
format, formatToCharacterIterator, parseObject
Подробное описание полей
calendar
protected Calendar calendar
numberFormat
protected NumberFormat numberFormat
DateFormat использует для форматирования чисел в датах и временах. Подклассы должны инициализировать его в формате чисел, соответствующем локали, связанной с этим DateFormat. ERA_FIELD
public static final int ERA_FIELD
- См. также:
YEAR_FIELD
public static final int YEAR_FIELD
- См. также:
MONTH_FIELD
public static final int MONTH_FIELD
- См. также:
DATE_FIELD
public static final int DATE_FIELD
- См. также:
HOUR_OF_DAY1_FIELD
public static final int HOUR_OF_DAY1_FIELD
- См. также:
HOUR_OF_DAY0_FIELD
public static final int HOUR_OF_DAY0_FIELD
- См. также:
MINUTE_FIELD
public static final int MINUTE_FIELD
- См. также:
SECOND_FIELD
public static final int SECOND_FIELD
- См. также:
MILLISECOND_FIELD
public static final int MILLISECOND_FIELD
- См. также:
DAY_OF_WEEK_FIELD
public static final int DAY_OF_WEEK_FIELD
- См. также:
DAY_OF_YEAR_FIELD
public static final int DAY_OF_YEAR_FIELD
- См. также:
DAY_OF_WEEK_IN_MONTH_FIELD
public static final int DAY_OF_WEEK_IN_MONTH_FIELD
- См. также:
WEEK_OF_YEAR_FIELD
public static final int WEEK_OF_YEAR_FIELD
- См. также:
WEEK_OF_MONTH_FIELD
public static final int WEEK_OF_MONTH_FIELD
- См. также:
AM_PM_FIELD
public static final int AM_PM_FIELD
- См. также:
HOUR1_FIELD
public static final int HOUR1_FIELD
- См. также:
HOUR0_FIELD
public static final int HOUR0_FIELD
- См. также:
TIMEZONE_FIELD
public static final int TIMEZONE_FIELD
- См. также:
FULL
public static final int FULL
- См. также:
LONG
public static final int LONG
- См. также:
MEDIUM
public static final int MEDIUM
- См. также:
SHORT
public static final int SHORT
- См. также:
DEFAULT
public static final int DEFAULT
- См. также:
Подробное описание конструкторов
DateFormat
protected DateFormat()
Подробное описание методов
формат
public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
Object в строку даты и времени. Отформатированная строка добавляется к заданному StringBuffer.- Определено в:
-
formatв классеFormat - Параметры:
-
obj- Должен бытьDateилиNumber, представляющий смещение в миллисекундах от эпохи эпохи. -
toAppendTo- Буфер строк для возвращаемой строки даты и времени. -
fieldPosition- отслеживает позицию поля в возвращаемой строке. Например, если задан текст даты и времени"1996.07.10 AD at 15:08:56 PDT", и заданноеfieldPositionявляетсяYEAR_FIELD, начальный и конечный индексыfieldPositionбудут установлены соответственно в 0 и 4. Обратите внимание, что если одно и то же поле даты и времени появляется более одного раза в шаблоне, тоfieldPositionбудет установлено для первого появления этого поля даты и времени. Например, форматированиеDateв строку даты и времени"1 PM PDT (Pacific Daylight Time)"с шаблоном"h a z (zzzz)"и полем выравниванияTIMEZONE_FIELD, начальный и конечный индексыfieldPositionбудут соответственно равны 5 и 8 для первого появления символа шаблона часового пояса'z'. - Возвращает:
- буфер строк, переданный как
toAppendTo, со добавленной отформатированной строкой. - Исключения:
-
IllegalArgumentException- еслиFormatне может отформатировать заданныйobj. - См. также:
формат
public abstract StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
Date в строку даты и времени. Отформатированная строка добавляется к заданному StringBuffer.- Параметры:
-
date- Дата, которая должна быть отформатирована в строку даты и времени. -
toAppendTo- Буфер строк для возвращаемой строки даты и времени. -
fieldPosition- отслеживает позицию поля в возвращаемой строке. Например, если задан текст даты и времени"1996.07.10 AD at 15:08:56 PDT", и заданноеfieldPositionявляетсяYEAR_FIELD, начальный и конечный индексыfieldPositionбудут установлены соответственно в 0 и 4. Обратите внимание, что если одно и то же поле даты и времени появляется более одного раза в шаблоне, тоfieldPositionбудет установлено для первого появления этого поля даты и времени. Например, форматированиеDateв строку даты и времени"1 PM PDT (Pacific Daylight Time)"с шаблоном"h a z (zzzz)"и полем выравниванияTIMEZONE_FIELD, начальный и конечный индексыfieldPositionбудут соответственно равны 5 и 8 для первого появления символа шаблона часового пояса'z'. - Возвращает:
- буфер строк, переданный как
toAppendTo, со добавленной отформатированной строкой.
формат
public final String format(Date date)
Date в строку даты и времени.- Параметры:
-
date- Значение времени, которое нужно отформатировать в строку даты и времени. - Возвращает:
- отформатированная строка даты и времени.
распарсить
public Date parse(String source) throws ParseException
См. метод parse(String, ParsePosition) для получения дополнительной информации о разборе дат.
- Параметры:
-
source- Строка, начало которой должно быть разобрано. - Возвращает:
- Дата, разобранная из строки.
- Исключения:
-
ParseException- если начало указанной строки не может быть разобранно.
распарсить
public abstract Date parse(String source, ParsePosition pos)
"07/10/96 4:5 PM, PDT" будет разобрана в Date, что эквивалентно Date(837039900000L). По умолчанию разбор является гибким: если входные данные не соответствуют форме, используемой этим объектом для форматирования, но все еще могут быть интерпретированы как дата, то разбор выполняется успешно. Клиенты могут потребовать строгого соблюдения формата, вызвав setLenient(false).
Этот оператор разбора использует calendar для получения Date. В результате поля даты и времени calendar и значение TimeZone могут быть перезаписаны, в зависимости от реализации подкласса. Любое значение
TimeZone ранее установленное вызовом setTimeZone может потребоваться восстановить для дальнейших операций.
- Параметры:
-
source- Строка даты/времени, которая должна быть разобранна -
pos- На входе, позиция, с которой начинается разбор; на выходе, позиция, на которой разбор завершился, или начальная позиция, если разбор не удался. - Возвращает:
- Дата, или null, если входные данные не удалось разобрать
parseObject
public Object parseObject(String source, ParsePosition pos)
Date. Метод пытается разобрать текст, начиная с индекса, указанного в pos. Если разбор выполняется успешно, то индекс pos обновляется до индекса после последнего используемого символа (разбор не обязательно использует все символы до конца строки), и возвращается разобранная дата. Обновленный pos может быть использован для указания начальной точки для следующего вызова этого метода. Если возникает ошибка, то индекс pos не изменяется, индекс ошибки pos устанавливается в индекс символа, где произошла ошибка, и возвращается null.
См. метод parse(String, ParsePosition) для получения дополнительной информации о разборе дат.
- Определено в:
-
parseObjectв классеFormat - Параметры:
-
source- Строка, часть которой должна быть разобранна. -
pos- ОбъектParsePositionс информацией об индексе и индексе ошибки, как описано выше. - Возвращает:
- Дата, разобранная из строки. В случае ошибки возвращает null.
- Исключения:
-
NullPointerException- еслиsourceилиposравно null.
getTimeInstance
public static final DateFormat getTimeInstance()
FORMAT. Это эквивалентно вызову getTimeInstance(DEFAULT,
Locale.getDefault(Locale.Category.FORMAT)).
- Возвращает:
- форматировщик времени.
- См. также:
getTimeInstance
public static final DateFormat getTimeInstance(int style)
FORMAT. Это эквивалентно вызову getTimeInstance(style,
Locale.getDefault(Locale.Category.FORMAT)).
- Параметры:
-
style- заданный стиль форматирования. Например, SHORT для "чч:мм a" в локали США. - Возвращает:
- форматировщик времени.
- См. также:
getTimeInstance
public static final DateFormat getTimeInstance(int style, Locale aLocale)
- Параметры:
-
style- заданный стиль форматирования. Например, SHORT для "чч:мм a" в локали США. -
aLocale- заданная локаль. - Возвращает:
- форматировщик времени.
getDateInstance
public static final DateFormat getDateInstance()
FORMAT. Это эквивалентно вызову getDateInstance(DEFAULT,
Locale.getDefault(Locale.Category.FORMAT)).
- Возвращает:
- форматировщик даты.
- См. также:
getDateInstance
public static final DateFormat getDateInstance(int style)
FORMAT. Это эквивалентно вызову getDateInstance(style,
Locale.getDefault(Locale.Category.FORMAT)).
- Параметры:
-
style- заданный стиль форматирования. Например, SHORT для "ДД/ММ/ГГ" в локали США. - Возвращает:
- форматировщик даты.
- См. также:
getDateInstance
public static final DateFormat getDateInstance(int style, Locale aLocale)
- Параметры:
-
style- заданный стиль форматирования. Например, SHORT для "ДД/ММ/ГГ" в локали США. -
aLocale- заданная локаль. - Возвращает:
- форматировщик даты.
getDateTimeInstance
public static final DateFormat getDateTimeInstance()
FORMAT. Это эквивалентно вызову getDateTimeInstance(DEFAULT,
DEFAULT, Locale.getDefault(Locale.Category.FORMAT)).
- Возвращает:
- форматировщик даты/времени.
- См. также:
getDateTimeInstance
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
FORMAT. Это эквивалентно вызову getDateTimeInstance(dateStyle,
timeStyle, Locale.getDefault(Locale.Category.FORMAT)).
- Параметры:
-
dateStyle- заданный стиль форматирования даты. Например, SHORT для "дд/мм/гг" в локальном регионе США. -
timeStyle- заданный стиль форматирования времени. Например, SHORT для "чч:мм а" в локальном регионе США. - Возвращает:
- форматировщик даты/времени.
- См. также:
getDateTimeInstance
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
- Параметры:
-
dateStyle- заданный стиль форматирования даты. -
timeStyle- заданный стиль форматирования времени. -
aLocale- заданный локальный регион. - Возвращает:
- форматировщик даты/времени.
getInstance
public static final DateFormat getInstance()
- Возвращает:
- форматировщик даты/времени
getAvailableLocales
public static Locale[] getAvailableLocales()
DateFormatProvider. Он должен содержать по крайней мере экземпляр Locale, равный Locale.US.- Возвращает:
- Массив локальных регионов, для которых доступны локализованные экземпляры
DateFormat.
setCalendar
public void setCalendar(Calendar newCalendar)
Любые значения TimeZone и строгости, которые были ранее установлены, перезаписываются значениями newCalendar.
- Параметры:
-
newCalendar- новыйCalendarдля использования форматом даты
getCalendar
public Calendar getCalendar()
- Возвращает:
- календарь, связанный с этим форматировщиком даты/времени.
setNumberFormat
public void setNumberFormat(NumberFormat newNumberFormat)
- Параметры:
-
newNumberFormat- заданный новый NumberFormat.
getNumberFormat
public NumberFormat getNumberFormat()
- Возвращает:
- форматировщик чисел, который этот форматировщик даты/времени использует.
setTimeZone
public void setTimeZone(TimeZone zone)
DateFormat. Этот метод эквивалентен следующему вызову. getCalendar().setTimeZone(zone)
Часовой пояс, установленный этим методом, перезаписывается вызовом setCalendar.
Часовой пояс, установленный этим методом, может быть перезаписан в результате вызова метода parse.
- Параметры:
-
zone- заданный новый часовой пояс.
getTimeZone
public TimeZone getTimeZone()
getCalendar().getTimeZone()
- Возвращает:
- часовой пояс, связанный с календарём DateFormat.
setLenient
public void setLenient(boolean lenient)
Этот метод эквивалентен следующему вызову.
getCalendar().setLenient(lenient)
Это значение лояльности перезаписывается вызовом setCalendar().
- Параметры:
-
lenient- приtrue, разбор лояльный - См. также:
isLenient
public boolean isLenient()
getCalendar().isLenient()
- Возвращает:
-
trueеслиcalendarлоялен;falseв противном случае. - См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
equals
public boolean equals(Object obj)
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект-ссылка, с которым нужно сравнить. - Возвращает:
-
trueесли этот объект такой же, как аргумент obj;falseв противном случае. - См. также:
clone
public Object clone()
- Переопределяет:
-
cloneв классеFormat - Возвращает:
- клонированный экземпляр.
- См. также:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/DateFormat.html