Иллюстрированный самоучитель по Java

Представление даты и времени

Различные способы представления дат и показаний времени можно осуществить методами, собранными в абстрактный класс DateFormat и его подкласс SimpleDateFormat из пакета Java.text.

Класс DateFormat предлагает четыре стиля представления даты и времени:

  • стиль SHORT представляет дату и время в коротком числовом виде: 27.04.01 17:32; в локали США: 4/27/01 5:32 РМ;
  • стиль MEDIUM задает год четырьмя цифрами и показывает секунды: 27.04.2001 17:32:45; в локали США месяц представляется тремя буквами;
  • стиль LONG представляет месяц словом и добавляет часовой пояс: 27 апрель 2001 г. 17:32:45 GMT+03.-00;
  • стиль FULL в русской локали таков же, как и стиль LONG; в локали США добавляется еще день недели.

Есть еще стиль DEFAULT, совпадающий со стилем MEDIUM.

При создании объекта класса simpieDateFormat можно задать в конструкторе шаблон, определяющий какой-либо другой формат, например:

SimpieDateFormat sdf = new SimpieDateFormat("dd-MM-yyyy hh.iran");
System.out.println(sdf.format(new Date()));

Получим вывод в таком виде:

27-04-2001 17.32.

В шаблоне буква d означает цифру дня месяца, м – цифру месяца, у – цифру года, h – цифру часа, m – цифру минут. Остальные обозначения для шаблона указаны В Документации по классу SimpieDateFormat.

Эти буквенные обозначения можно изменить с помощью класса DateFormatSymbols.

Не во всех локалях можно создать объект класса SimpieDateFormat. В таких случаях используются статические методы getinstance() класса DateFormat, возвращающие объект класса DateFormat. Параметрами этих методов служат стиль представления даты и времени и, может быть, локаль.

После создания объекта метод format () класса DateFormat возвращает строку с датой и временем, согласно заданному стилю. В качестве аргумента задается объект класса Date.

Например:

System.out.println("LONG: " + DateFormat.getDateTimelnstance(
DateFormat. LONG, DateFormat. LONG) .format (new Date ()));

…или:

System.out.println("FULL: " + DateFormat.getDateTimelnstance(
DateFormat.FULL,DateFormat.FULL, Locale.US).format(new Date()));
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.