На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Обзор Java Date и Time API


JSR 310 Date и Time API был разработан для преодоления многочисленных проблем, связанных с предыдущими Date и Time API, Java. В результате проект был построен с учетом ряда важных принципов дизайна:

  • Неизменность и потокобезопасность. Все основные классы в Date и Time API являются незыблемыми; это гарантирует, что вам не придется беспокоиться о многопоточности, то есть о проблемах, вызываемых отсутствием синхронизации потоков. Неизменные объекты просто строить, использовать; с помощью них можно создавать хороших хэш-ключи и так далее.

  • Беглость. Date и Time API представляет собой интерфейс, который делает методы более читаемым и легче учится, особенно, когда методы соединены друг с другом. Некоторые заводские методы (например, в now() , from() , а также of -prefixed методов) используются в качестве альтернативы конструкторами. Вы также сможете использовать with -prefixed методы, если вам нужно возвратить копию текущего экземпляра с дополнительной информацией.

  • Ясность. Каждый метод Date и Time API определен корректно; ясно, что он выполняет. Кроме того, Date и Time не принимает нулевые аргументы в самом начале. Если не указано иное, то передавая пустой аргумент к методу в любом классе или интерфейсе, будет вызываться NullPointerException. Являются исключением vетоды валидации, которые принимают аргументы и возвращают объект, логические значения: они обычно возвращают false, когда передается NULL.

  • Расширяемость. Шаблон проектирования стратегии используется по всему API , чтобы обеспечить расширение, избегая путаницы. Например, хотя классы Date и Time основаны на ISO-8601 системе календаря, вы можете также работать с календарями не ISO (например, японский Imperial), которые включены в API. Можно даже представить свой собственный календарь.
На момент написания этой статьи в Date и Time описывается более 60 типов, которые организованы в основной пакет и четыре подпакета:

  • В java.time представлены классы, представляющие основные понятия даты и времени: моменты, продолжительность, даты, время, часовые пояса, partial-ы и периоды. Все классы данного пакета являются статичными и ориентированными на многопоточное исполнение.

  • java.time.chrono обеспечивает общий API, который описывает календарные систем, отличных от дефолтной календарной системы ISO-8601.

  • java.time.format представляет классы для форматирования и разбора объектов даты и времени.

  • java.time.temporal предлагает поля, блок или доступ к настройке временного объекта, например по дате.

  • В java.time.zone представлены классы, в которых реализована поддержка часовых поясов и их правил.
Типы в пакете java.time должны удовлетворять большинство ваших потребностей. Вы будете работать непосредственно с типами в остальных четырех пакетах только тогда, когда вам нужно выйти за пределы java.time в ISO-8601 - системы календаря по умолчанию.

Модернизация старого Date и Time API

Для того, чтобы облегчить переход к новой API, старый Date и Time API, был модернизирован для взаимодействия с датой и временем. Например, метод Instant toInstant() был добавлен в java.util.Date для конвертирования экземпляра Date в Instant экземпляр.

Продолжение следует...




тегистатьи IT, java, Date, Time





Программа "Новогодняя ёлочка"
Урок 8. Логические операторы C#


© upread.ru 2013-2018
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос или оставить комментарий. Оставьте сообщение, и я отвечу на него в ближайшее время. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru