Дата и время в Java 8
До Java 8 для работы с датой и временем использовались классы java.util.Date и java.util.Calendar. У них было много недостатков, например:
- не потокобезопасный,
- изменяемые объекты,
- временная зона даты – это временная зона JVM по умолчанию,
- месяца начинаются с нуля.
В Java 8 добавили новую библиотеку, которая содержит неизменные (immutable), потокобезопасные классы с более продуманным дизайном. Это классы LocalDate , LocalTime , LocalDateTime , Instant , Period и Duration . Содержатся они в пакете java.time и не содержат информацию о временной зоне (кроме класса Instant ).
LocalDate , LocalTime , LocalDateTime и Instant реализуют интерфейс java.time.temporal.Temporal . Period и Duration реализуют интерфейс java.time.temporal.TemporalAmount .
Презентацию с видео можно скачать на Patreon .
- Класс LocalDate
- Класс LocalTime
- Класс LocalDateTime
- Класс Instant
- Класс Period
- Класс Duration
- Класс DateTimeFormatter
- Задания
Trustpilot
Комментарии
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.
17. Java – Дата и время
Java предоставляет класс Date, который доступен в пакете java.util, этот класс заключает в себе текущую дату и время.
Конструкторы
Класс Date поддерживает два конструктора, которые показаны ниже.
| № | Конструктор и описание |
| 1 | Date() Этот конструктор инициализирует объект с текущей датой и временем. |
| 2 | Date(long millisec) Этот конструктор принимает аргумент равный числу миллисекунд, истекших с полуночи 1 января 1970 г. |
Методы класса Date
Ниже представлены методы класса Date.
| № | Методы с описанием |
| 1 | boolean after(Date date) Возвращает значение true, если вызывающий объект date содержит дату, которая раньше заданной даты, в противном случае он возвращает значение false. |
| 2 | boolean before(Date date) Возвращает значение true, если вызывающий объект date содержит дату, более раннюю, чем заданная дата, в противном случае он возвращает значение false. |
| 3 | Object clone() Дублирование вызывающего объекта date. |
| 4 | int compareTo(Date date) Сравнивает значение вызывающего объекта с этой датой. Возвращает 0, если значения равны. Возвращает отрицательное значение, если объект вызова является более ранним, чем дата. Возвращает положительное значение, если объект вызова позже даты. |
| 5 | int compareTo(Object obj) Работает точно так же compareTo(Date), если объект вызова имеет класс Date. В противном случае вызывает ClassCastException. |
| 6 | boolean equals(Object date) Возвращает значение true, если вызывающий объект date содержит то же время и дату, которая указана в date, в противном случае он возвращает значение false. |
| 7 | long getTime() Возвращает количество миллисекунд, истекших с 1 января 1970 года. |
| 8 | int hashCode() Возвращает хэш-код для вызывающего объекта. |
| 9 | void setTime(long time) Задает дату и время, соответствующие моменту времени, что представляет собой общее затраченное время в миллисекундах от полуночи 1 января 1970 года. |
| 10 | String toString() Преобразует вызывающий объект date в строку и возвращает результат. |
Текущая дата и время в Java
Получить текущую дату и время в Java достаточно не трудно. Вы можете использовать простой объект date вместе с методом toString(), чтобы вывести текущую дату и время следующим образом:
import java.util.Date; public class Test < public static void main(String args[]) < // Инициализация объекта date Date date = new Date(); // Вывод текущей даты и времени с использованием toString() System.out.println(date.toString()); >>
Получим следующий результат:
Sun Nov 13 00:14:19 FET 2016
Сравнение дат
Существуют три способа в Java сравнить даты:
- Можно использовать функцию getTime(), чтобы получить количество миллисекунд, прошедших с момента полуночи 1 января 1970, для обоих объектов, а затем сравнить эти два значения.
- Вы можете использовать методы before(), after() и equals(). Поскольку 12 число месяца раньше 18 числа, например, new Date(99, 2, 12).before(new Date (99, 2, 18)) возвращает значение true.
- Можно использовать метод compareTo(), который определяется сопоставимым интерфейсом и реализуется по дате.
Форматирование даты с помощью SimpleDateFormat
SimpleDateFormat – это конкретный класс для парсинга и форматирования даты в Java. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени. Например:
import java.util.*; import java.text.*; public class Test < public static void main(String args[]) < Date dateNow = new Date(); SimpleDateFormat formatForDateNow = new SimpleDateFormat("E yyyy.MM.dd 'и время' hh:mm:ss a zzz"); System.out.println("Текущая дата " + formatForDateNow.format(dateNow)); >>
Получим следующий результат:
Текущая дата Вс 2016.11.13 и время 12:12:36 AM FET
Формат-коды SimpleDateFormat
Для того, чтобы задать в Java формат даты и времени, используйте строковый шаблон (регулярные выражения) с датой и временем. В этой модели все буквы ASCII зарезервированы как шаблон письма, которые определяются следующим образом:
| Символ | Описание | Пример |
| G | Обозначение эры | н.э. |
| y | Год из четырех цифр | 2016 |
| M | Номер месяца года | 11 |
| d | Число месяца | 13 |
| h | Формат часа в A.M./P.M.(1~12) | 7 |
| H | Формат часа(0~23) | 19 |
| m | Минуты | 30 |
| s | Секунды | 45 |
| S | Миллисекунды | 511 |
| E | День недели | Вс |
| D | Номер дня в году | 318 |
| F | Номер дня недели в месяце | 2 (второе воскресение в этом месяце) |
| w | Номер неделя в году | 46 |
| W | Номер недели в месяце | 2 |
| a | Маркер A.M./P.M. | AM |
| k | Формат часа(1~24) | 24 |
| K | Формат часа в A.M./P.M.(0~11) | 0 |
| z | Часовой пояс | FET (Дальневосточноевропейское время) |
| ‘ | Выделение для текста | Текст |
| » | Одинарная кавычка | ‘ |
Форматирование даты с помощью printf
Формат даты и времени можно сделать без труда с помощью метода printf. Вы используете формат двух букв, начиная с t и заканчивая одним из символов в таблице, приведенных ниже. Например:
import java.util.Date; public class Test < public static void main(String args[]) < // Инициализация объекта date Date date = new Date(); // Вывод текущей даты и времени с использованием toString() String str = String.format("Текущая дата и время: %tc", date); System.out.printf(str); >>
Получим следующий результат:
Текущая дата и время: Вс ноя 13 00:55:59 FET 2016
Было бы немного глупо, если Вы должны были бы поставить дату несколько раз для форматирования каждой части. По этой причине формат строки может указывать индекс аргумента для форматирования.
Индекс должен непосредственно следовать за % и завершаться $. Например:
import java.util.Date; public class Test < public static void main(String args[]) < // Инициализация объекта date Date date = new Date(); // Вывод текущей даты с использованием toString() System.out.printf("%1$s %2$td %2$tB %2$tY", "Дата:", date); >>
Получим следующий результат:
Дата: 13 ноября 2016
Вывод даты и времени в текстовом виде
Нужно в список вывести теперь дату в читабельном виде. Делаю так, но вместо времени выходит непонятно что.
Date date = new Date(item.getDate()*1000L); SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy mm:hh"); String formattedDate = sdf.format(date.getTime());
Отображается 24.11.2019 44:03
Отслеживать
25.9k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
Java Дата Время
Дата пакет java.util предоставляет классы для инкапсуляции текущую дату и время. Дата класс предоставляет два конструктора для создания экземпляра объекта Date.
Первый конструктор использует текущую дату и время для инициализации объекта.
Date( )
Второй конструктор принимает параметр, который является количество миллисекунд, прошедших с 1 января 1970 года.
Date(long millisec)
После того как объект Date создан, вы можете вызвать следующий метод.
Получить текущую дату и время
Java получает текущую дату и время очень проста, используйте метод ToString объекта Date (), чтобы напечатать текущую дату и время следующим образом:
import java.util.Date; public class DateDemo < public static void main(String args[]) < // 初始化 Date 对象 Date date = new Date(); // 使用 toString() 函数显示日期时间 System.out.println(date.toString()); >>
Приведенные выше примеры скомпилированные получены следующие результаты:
Mon May 04 09:51:52 CDT 2013
Сравнить даты
Java использует три метода для сравнения двух следующих дат:
- Используйте метод GetTime (), чтобы получить две даты (1 января 1970 года через число миллисекунд, прошедших с), а затем сравнить два значения.
- Использовать до (), после того, как () и Equals (). Например, за месяц до 12, чем 18, новый Дата (99, 2, 12) .Перед (новые Дата (99, 2, 18)) возвращает истину.
- Метод использования СотрагеТо (), который определяется Сопоставимые интерфейс, дата класс реализует этот интерфейс.
Использование SimpleDateFormat для форматирования даты
SimpleDateFormat класс является локаль-чувствительным способом для форматирования и синтаксического анализа дат. SimpleDateFormat позволяет выбрать любой пользовательский пользователей дату и время для запуска форматирования. Например:
import java.util.*; import java.text.*; public class DateDemo < public static void main(String args[]) < Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); >>
Приведенные выше примеры скомпилированные получены следующие результаты:
Current Date: Sun 2004.07.18 at 04:14:09 PM PDT
Формат кодирования Простой DateFormat
Строка шаблона Время используется для задания формата времени. В этом режиме все ASCII буквы зарезервированы, как определены буквы образца следующим образом:
| письмо | описание | пример |
|---|---|---|
| G | знак Эра | нашей эры |
| Y | Четыре года | 2001 |
| M | месяц | Июль или 07 |
| d | дата месяц | 10 |
| час | AM / PM формат (1 ~ 12) часов | 12 |
| H | Час дня (от 0 до 23) | 22 |
| м | Количество минут | 30 |
| s | секунд | 55 |
| S | миллисекунды | 234 |
| Е | День недели | вторник |
| D | День года | 360 |
| F | Первые недели месяца недели | 2 (второй ср в июле) |
| вес | Первые несколько недель в году | 40 |
| W | Первые недели месяца | 1 |
| AM / PM метка | PM | |
| К | Час дня (от 1 до 24) | 24 |
| К | AM / PM формат (0 ~ 11) часов | 10 |
| Z | Временная зона | Восточное стандартное время |
| ‘ | ограничитель текста | Ограничитель |
| « | Одинарные кавычки | ` |
форматирования даты использования PRINTF
Метод Printf может быть легко форматируется время и дату. Используйте формат двух букв, она начинается с т и в следующей таблице в конце письма. Например:
import java.util.Date; public class DateDemo < public static void main(String args[]) < // 初始化 Date 对象 Date date = new Date(); // 使用toString()显示日期和时间 String str = String.format("Current Date/Time : %tc", date ); System.out.printf(str); >>
Приведенные выше примеры скомпилированные получены следующие результаты:
Current Date/Time : Sat Dec 15 16:37:57 MST 2012
Если вам нужно повторить дату предложения, а затем использовать этот метод для форматирования каждой его часть немного сложнее. Таким образом, вы можете использовать строку формата указал быть отформатирован параметр индекса.
Индекс должен немедленно% позади, и должно заканчиваться $. Например:
import java.util.Date; public class DateDemo < public static void main(String args[]) < // 初始化 Date 对象 Date date = new Date(); // 使用toString()显示日期和时间 System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date); >>
Приведенные выше примеры скомпилированные получены следующие результаты:
Due date: February 09, 2004
import java.util.Date; public class DateDemo < public static void main(String args[]) < // 初始化 Date 对象 Date date = new Date(); // 显示格式化时间 System.out.printf("%s %tB %>
Приведенные выше примеры скомпилированные получены следующие результаты:
Due date: February 09, 2004
Символы преобразования даты и времени
| характер | описание | пример |
| с | Полный Дата и время | Пн 4 май 2009 9:51:52 CDT |
| F | ISO 8601 формат даты | 2004-02-09 |
| D | формат даты США (месяц / день / год) | 02/09/2004 |
| T | Время 24 часа | 18:05:19 |
| R | 12-часовой рабочий день | 6:05:19 вечера |
| R | 24-часовое время, не включает в себя секунды | 18:05 |
| Y | 4 года (с ведущим нулем) | 2004 |
| Y | После двух лет (с ведущим нулем) | 04 |
| С | 2 года назад (с ведущим нулем) | 20 |
| В | Полное название месяца | февраль |
| б | месяц Сокращение | февраль |
| N | 2 месяца (с ведущим нулем) | 02 |
| d | 2 дня (с ведущим нулем) | 03 |
| е | 2 дня (без начального 0) | 9 |
| Неделя полное имя | понедельник | |
| Короткая неделя | понедельник | |
| J | 3-х лет (с ведущим нулем) | 069 |
| H | 2 часа (с ведущим нулем), 00-23 | 18 |
| К | 2 часа (без начального 0), 0-23 | 18 |
| Я | 2 часа (с ведущим нулем), 01-12 | 06 |
| L | 2 часа (без начального 0), 1-12 | 6 |
| M | 2 минуты (с ведущим нулем) | 05 |
| S | 2 секунды (с ведущим нулем) | 19 |
| L | 3 мс (с ведущим нулем) | 047 |
| N | 9 нс (с ведущим нулем) | 047000000 |
| P | Капитализируются днем флага | PM |
| р | Во второй половине дня в нижнем регистре логотипа | вечера |
| Z | Смещение от GMT в RFC 822 Digital | -0800 |
| Z | Временная зона | PST |
| s | Количество секунд, прошедших с 1970-01-01 00:00:00 GMT | 1078884319 |
| Q | Так как 1970-01-01 00:00:00 GMT центов замечательно | 1078884319047 |
Есть другая полезная дата и время класса. Для получения более подробной информации, Вы можете обратиться к стандартной документации Java.
Разбор строки в то время,
SimpleDateFormat класс имеет некоторые дополнительные методы, особенно разобрать выражение (), которые пытались следовать заданной SimpleDateFormat формат хранения объекта для разбора строки. Например:
import java.util.*; import java.text.*; public class DateDemo < public static void main(String args[]) < SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); String input = args.length == 0 ? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try < t = ft.parse(input); System.out.println(t); >catch (ParseException e) < System.out.println("Unparseable using " + ft); >> >
Приведенные выше примеры скомпилированные получены следующие результаты:
$ java DateDemo 1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818 $ java DateDemo 2007-12-01 2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007
Java в состоянии покоя (сна)
сон () делает текущий поток в застойном состоянии (блокирует текущий поток), так что использование процессора, цель состоит в том, чтобы сохранить текущий поток в одиночку занимают ресурсы процессора, полученные в процессе, чтобы оставить некоторое время, чтобы случайно еще один поток выполнения.
Вы можете позволить программе сна за одну миллисекунду длительный период времени, или любой из жизни вашего компьютера. Например, следующая программа будет спать три секунды:
import java.util.*; public class SleepDemo < public static void main(String args[]) < try < System.out.println(new Date( ) + "\n"); Thread.sleep(1000*3); // 休眠3秒 System.out.println(new Date( ) + "\n"); >catch (Exception e) < System.out.println("Got an exception!"); >> >
Приведенные выше примеры скомпилированные получены следующие результаты:
Thu Sep 17 10:20:30 CST 2015 Thu Sep 17 10:20:33 CST 2015
время измерения
Вот пример, который показывает вам, как измерять интервалы времени (в миллисекундах):
import java.util.*; public class DiffDemo < public static void main(String args[]) < try < long start = System.currentTimeMillis( ); System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); long end = System.currentTimeMillis( ); long diff = end - start; System.out.println("Difference is : " + diff); >catch (Exception e) < System.out.println("Got an exception!"); >> >
Приведенные выше примеры скомпилированные получены следующие результаты:
Fri Jan 08 09:48:47 CST 2016 Fri Jan 08 09:48:50 CST 2016 Difference is : 3019
Класс Календарь
Теперь мы можем отформатировать и создать объект даты, но как мы можем установить и получить определенную часть его современные данные, такие как часы, дни или минуты? Как мы можем в этих частях даты плюс или минус ? ответ заключается в использовании категории Календарь.
Многие мощные функции, чем класс календарной даты класса, но и в реализации, чем дата класса комплекса.
Класс Calendar это абстрактный класс, который реализует конкретный подкласс объектов в реальных условиях эксплуатации, создание объектов является прозрачным для программиста нужно только быть создан, чтобы использовать метод GetInstance.
Создайте объект Calendar, представляющий текущую системную дату
Calendar c = Calendar.getInstance();//默认是当前日期
Создание указанного объекта календаря даты
Используйте класс календарь представляет определенное время, вам нужно сначала создать объект календаря, а затем устанавливает параметры даты объекта для завершения.
//创建一个代表2009年6月12日的Calendar对象 Calendar c1 = Calendar.getInstance(); c1.set(2009, 6 - 1, 12);
Календарь тип поля объекта класса
Тип календаря используется в этих констант представляют разные значения, многие думали, что этот класс фактически используются в JDK
| постоянная | описание |
|---|---|
| Calendar.YEAR | лет |
| Calendar.MONTH | месяц |
| Calendar.DATE | дата |
| Calendar.DAY_OF_MONTH | Дата и идентично выше полей значения |
| Calendar.HOUR | 12-часовой формат |
| Calendar.HOUR_OF_DAY | 24-часовой формат |
| Calendar.MINUTE | минут |
| Calendar.SECOND | второй |
| Calendar.DAY_OF_WEEK | День недели |
Установка информационного объекта класса Календарь
Набор настроек
Calendar c1 = Calendar.getInstance();
Звоните по телефону:
public final void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12
Используйте настройки типа поля
Если задать только поле, такие как дата значение можно установить с помощью следующих методов:
public void set(int field,int value)
Объект Date представляет c1 установлен на 10, все остальные значения пересчитываются
c1.set(Calendar.DATE,10);
Объект представляет собой год c1 установлен в 2008 году, все остальные значения пересчитываются
c1.set(Calendar.YEAR,2008);
Значение других свойств поля устанавливается так
Добавление настроек
Calendar c1 = Calendar.getInstance();
Целевой датой плюс 10 c1, c1 также выражается как через 10 дней после даты, все остальные значения пересчитываются
c1.add(Calendar.DATE, 10);
Целевая дата минус 10 с1, с1 также выражается как дата 10 дней назад, все остальные значения будут пересчитаны
c1.add(Calendar.DATE, -10);добавить это означает другие свойства поля так
Объект класса Calendar, чтобы получить информацию
Calendar c1 = Calendar.getInstance(); // 获得年份 int year = c1.get(Calendar.YEAR); // 获得月份 int month = c1.get(Calendar.MONTH) + 1; // 获得日期 int date = c1.get(Calendar.DATE); // 获得小时 int hour = c1.get(Calendar.HOUR_OF_DAY); // 获得分钟 int minute = c1.get(Calendar.MINUTE); // 获得秒 int second = c1.get(Calendar.SECOND); // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推) int day = c1.get(Calendar.DAY_OF_WEEK);класс GregorianCalendar
Класс Calendar реализует григорианский календарь, класс GregorianCalendar Календарь является конкретной реализацией.
Календарь GetInstance () метод возвращает значение по умолчанию с текущей локали и временной зоны инициализации объекта GregorianCalendar. GregorianCalendar определяет два поля: AD и BC. Они представляют собой два календаря определили эру.
Ниже перечислены некоторые из них объект GregorianCalendar конструктор:
| Нет . | Конструктор и Описание |
| 1 | GregorianCalendar () Если у вас есть локаль по умолчанию часовой пояс по умолчанию Создаёт GregorianCalendar тока по умолчанию. |
| 2 | GregorianCalendar (INT год, Int месяц, дата INT) Если у вас есть зона по умолчанию языковой стандарт по умолчанию Создаёт GregorianCalendar с заданным набором дат |
| 3 | GregorianCalendar (INT год, Int месяц, дата INT, INT час, минута INT) Наличие языкового стандарта по умолчанию по умолчанию часовой пояс для GregorianCalendar конструирует определенную дату и время настройки. |
| 4 | GregorianCalendar (INT год, Int месяц, дата INT, INT час, Int минуту, Int второй) Наличие языкового стандарта по умолчанию по умолчанию часовой пояс для GregorianCalendar конструирует определенную дату и время настройки. |
| 5 | GregorianCalendar (Locale aLocale) Когда вы должны установить область языковой стандарт по умолчанию Создаёт на основе GregorianCalendar текущего времени. |
| 6 | GregorianCalendar (TimeZone зона) В локали по умолчанию с учетом часового пояса по построить GregorianCalendar на основе текущего времени. |
| 7 | GregorianCalendar (TimeZone зона, Locale aLocale) В данной местности данного часового пояса Создаёт GregorianCalendar на основе текущего времени. |
Вот список класса GregorianCalendar предоставляет некоторые полезные методы:
| Нет . | Метод и Описание |
| 1 | недействительными добавить (целое поле, Int сумма ) В соответствии с правилами, указанными календаря (подпись) количество времени данного календарного поля. |
| 2 | защищенные недействительными computeFields () UTC пороговое значение времени преобразования мс |
| 3 | защищенный пустота computeTime () Покрытие календарь, Конвертирует значение поля времени в формате UTC в миллисекундах |
| 4 | булевы равно (OBJ Object) Сравнивает этот GregorianCalendar указанному объекту. |
| 5 | INT получить (целое поле) Получает значение времени указанного поля |
| 6 | INT getActualMaximum (целое поле) Возвращает текущую дату, максимальное значение данного поля |
| 7 | INT getActualMinimum (целое поле) Возвращает текущую дату, минимальное значение данного поля |
| 8 | INT getGreatestMinimum (целое поле) GregorianCalendar Возвращает максимальное минимальное значение для данного календарного поля. |
| 9 | Дата getGregorianChange () Получить григорианский дату изменения. |
| 10 | INT getLeastMaximum (целое поле) Возвращает этот экземпляр GregorianCalendar данного календарного поля наименьшая максимальное значение |
| 11 | INT getMaximum (целое поле) Возвращает экземпляр GregorianCalendar заданный максимальный календарь поле. |
| 12 | Дата GetTime () Получить текущее время календаря. |
| 13 | длинные getTimeInMillis () Получить календарь с длинное целое представление текущего времени |
| 14 | TimeZone getTimeZone () Получить часовой пояс. |
| 15 | INT getMinimum (целое поле) Назад к минимальному значению заданного поля. |
| 16 | INT хэш - код () Перепишите хэш-код. |
| 17 | булево ISLEAPYEAR (INT год) Определяет, является ли данный год является високосным. |
| 18 | недействительным рулон (целое поле, булево вверх ) На данный момент времени поле, чтобы добавить или вычесть одну единицу времени (вверх / вниз), не меняя больших полей. |
| 19 | недействительными набор (INT поля, значение INT ) С помощью данного поля значения времени. |
| 20 | недействительными набор (INT год, Int месяц , дата INT) Установите год, значение месяца и дня. |
| 21 | недействительными набор (INT год, Int месяц , дата INT, INT час, минута INT) Установите год, месяц, день, час, минута значение. |
| 22 | недействительными набор (INT год, Int месяц , дата INT, INT час, Int минуту, Int второй) Установить год, часы, минуты и секунды значения месяца, дня. |
| 23 | setGregorianChange недействительным (дата дата) Устанавливает GregorianCalendar дату изменения. |
| 24 | недействительным SetTime (дата дата) С текущего времени данная дата, установленная календаря. |
| 25 | setTimeInMillis недействительным (длинный Миллис) При заданном числе длинного типа текущего времени миллисекунды календаря. |
| 26 | недействительным setTimeZone (значение TimeZone) С помощью настроек часового пояса в текущем часовом поясе. |
| 27 | Строка ToString () Возвращает строку, которая представляет календарь. |
примеров
import java.util.*; public class GregorianCalendarDemo < public static void main(String args[]) < String months[] = < "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec">; int year; // 初始化 Gregorian 日历 // 使用当前时间和日期 // 默认为本地时间和时区 GregorianCalendar gcalendar = new GregorianCalendar(); // 显示当前时间和日期的信息 System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // 测试当前年份是否为闰年 if(gcalendar.isLeapYear(year)) < System.out.println("当前年份是闰年"); >else < System.out.println("当前年份不是闰年"); >> >
Приведенные выше примеры скомпилированные получены следующие результаты:
Date: Apr 22 2009 Time: 11:25:27 当前年份不是闰年