Дата, время и их форматы в Java
Получить в Java текущую дату можно так:
System.out.println(«Date currentDate = » + currentDate);
Получим (дата Java, время Java):
Форматирование даты и времени в Java см. ниже.
Как задать другую, не текущую, дату в Java? Получим вчерашнюю дату:
Long time = currentDate.getTime();
long anotherDate = -1;
time = time + (60*60*24*1000*anotherDate);
currentDate = new Date(time);
System.out.println(«Date currentDate = » + currentDate);
Результат (дата Java, время Java):
Получить дату в Java с помощью GregorianCalendar:
System.out.println(«currentDate = » + calen.getTime());
Результат:
Класс DateFormat
Форматируем дату и время в Java с помощью класса DateFormat. Это предустановленное форматирование для данной локали.
Как создать русскую локаль?
Форматируем дату:
currentDate = new Date();
System.out.println(«currentDate = » + df.format(currentDate));
Результат:
Установим DateFormat.LONG:
currentDate = new Date();
System.out.println(«currentDate = » + df.format(currentDate));
Результат:
Форматируем Время в Java с помощью предустановленного формата
currentDate = new Date();
System.out.println(«currentTime = » + df.format(currentDate));
Результат:
Форматируем дату и время с помощью предустановленного формата:
currentDate = new Date();
System.out.println(«currentDateTime = » + df.format(currentDate));
Результат:
Класс SimpleDateFormat
Можно самому определить порядок форматирования с помощью класса SimpleDateFormat.
Пример (год кратко):
currentDate = new Date();
System.out.println(«currentDate = » + sdf.format(currentDate));
Результат:
Пример (год полный):
currentDate = new Date();
System.out.println(«currentDate = » + sdf.format(currentDate));
Результат:
Пример (месяц прописью):
currentDate = new Date();
System.out.println(«currentDate = » + sdf.format(currentDate));
Результат:
Форматируем дату и время:
currentDate = new Date();
System.out.println(«currentDate = » + sdf.format(currentDate));
Результат:
Если в формате часов поставить маленькие буквы hh, т.е. hh:mm:ss, то получим:
здесь 08 вместо 20 часов.
Класс DateFormatSymbols
Чтобы названия месяцев были в родительном падеже используем класс DateFormatSymbols:
Результат:
Класс MaskFormatter
Самое важное, что нужно знать про класс MaskFormatter, так это то, что форматирует он только СТРОКИ. Если надо форматировать дату, от даты переходим к строке, а уж строку форматируем MaskFormatter-ом. Пример:
Если установить:
то отсутствующие символы заменяются знаком подчёркивания.
Класс GregorianCalendar
Полезно знать класс GregorianCalendar при работе с датами. Класс GregorianCalendar расширяет класс Calendar в Java.
Создать объект GregorianCalendar для 27.04.2008 14:30:59:
Установить дату и время в объект GregorianCalendar:
Соответствующими методами get получаем элементы даты:
Прибавить/вычесть к дате дни можно методом add:
Другая возможность изменять дату — метод roll:
Проверим високосный ли год методом isLeapYear:
Получаем:
Скачать GregorianCalendar пример (6 КБ).