Работа с датой и временем


Данные типа дата/время приходится обрабатывать довольно часто, поэтому все современные языки программирования предлагают удобный механизм для работы с ними в одной из своих библиотек.

В Java для этих целей разработаны классы Date и Calendar, собранные в пакете java.util.

Класс Date хранит число миллисекунд, прошедших с 1 января 1970 года (во внутреннем поле, имеющем тип long). Конструктор без параметров этого класса создает объект, содержащий текущее время (по системным часам машины, на которой выполняется программа). Другой конструктор, с параметром типа long, создает объект Date на основе заданного числа.

Метод getTime() позволяет получить это число, а метод setTime(long newTime) – изменить.

Для отображения даты на экране ее внутреннее представление необходимо перевести в строку, более удобную для восприятия. Для этого обычно используется класс SimpleDateFormat (являющийся наследником абстрактного класса DateFormat), который надо импортировать из пакета java.text. Прежде всего необходимо создать объект этого класса, указав в качестве параметра конструктора строку, определяющую способ форматирования. Например:

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy hh:mm");

Теперь следует вызвать метод format() созданного форматирующего объекта, передав ему в качестве параметра тот объект Date, который необходимо представить в виде строки. Чтобы вывести на экран текущую дату, необходимо использовать команду:

System.out.println(formatter.format(new Date()));

В момент написания этих строк программа вывела в консоль

25.02.2016 01:25

В строке "dd.MM.yyyy hh:mm" dd означает цифры дня, MM – цифры месяца, yyyy – цифры года, hh – часы и mm – минуты. Комбинация MMMM дала бы название месяца (в именительном падеже), а yy – только две последние цифры года. Названные составляющие могут следовать в любом порядке (причем, все они присутствовать не обязаны), а разделители между ними (в примере это точка, пробел и двоеточие) могут быть и другими.

Класс Calendar позволяет работать с датой на более высоком уровне, отдельно рассматривая составляющие даты (число, месяц, год и т.д.). Он является абстрактным, поэтому необходимо пользоваться одним из его наследников. Таковым является GregorianCalendar (описывающий грегорианский календарь).

Создать объект этого класса, содержащий текущую дату/время можно конструктором без параметров. Всего же у класса GregorianCalendar семь конструкторов, наиболее мощный из них принимает шесть параметров:

GregorianCalendar(int year, int month, int day, int hour, int minutes, int seconds)

Получить любую часть даты можно с помощью универсального метода get(int field). Целочисленный параметр field определяет желаемую часть даты.

В классе Calendar определены константы, описывающие возможные варианты: ERA, YEAR, MONTH, WEEK_OF_YEAR, WEEK_OF_MONTH, DAY_OF_YEAR, DAY_OF_MONTH, DAY_OF_WEEK, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND и несколько других.

Например, можно узнать, какой сегодня день года:

GregorianCalendar today = new GregorianCalendar();

int result = today.get(Calendar.DAY_OF_YEAR);

System.out.println(result);

Любую часть даты можно изменить методом set(int field, int value).



Дата добавления: 2017-01-26; просмотров: 1396;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.