Что означает текущая дата

Урок 76. Текущая дата

Приближается Новый год. Наши документы в полном порядке. На титульном листе красуется текущий год, то есть актуальная дата. А после новогодних каникул нас поджидает такая мелкая неприятность: Новый год наступил, а на документах осталась прежняя дата. Не знаю как вы, а мне до марта месяца попадаются документы, в которых надо исправить год и не в одном месте – год издания, дата утверждения, может быть и дата согласования.

По окончании этого урока вы сможете:

Урок 30 «Список иллюстраций». В нём дала определение понятия «Поле»:

Понять и запомнить!Поле – это зарезервированный участок в документе, который отображает изменения определённого типа в документе.

Каждое поле имеет свою ограниченную функцию и свой код (а вот о кодах полей много-много позже). Например, поле Оглавление, поле Номер страницы, поле Дата.

Преимущество использования полей состоит в том, что вставленное содержимое (дата, номер страницы, оглавление и т.п.) обновляется автоматически при каждом изменении. Например, если вы работаете над документом в течение нескольких дней, то поле «Time» (текущая дата) будет изменяться каждый день.

Откройте документ с красиво оформленным титульным листом (Урок 42. «Титульный лист»). Можете открыть учебный файл, который можно скачать тут.

1. Вставка поля «Дата»

Шаг 1. Определимся с местами вставки поля «Дата»:

Что означает текущая дата

Хорошо еще, что нет ещё и года согласования.

Обе даты находятся в колонтитулах, все согласно уроку 42.

Входим в колонтитулы (урок 38 и урок 43) и определяем место вставки поля, которое будет определять актуальный год:

Что означает текущая дата

Шаг 2. Вставляем поле «Дата» (лента Вставка → группа команд Текст → команда Экспресс-блоки → команда Поле… из выпадающего меню):

Что означает текущая дата

Появляется очень интересное диалоговое окно «Поле»:

Что означает текущая дата

Шаг 3. Выбираем категорию «Дата и Время»:

Что означает текущая дата

Как мы видим, нет такого формата – текущий год. Решаем эту проблему.

Шаг 4. Смотрим коды поля и параметры поля:

Что означает текущая дата

Смотрим самый первый ключ. Простая логика нам подсказывает:

Что означает текущая дата

Шаг 5. Добавляем первый ключ в поле «Код поля» и аккуратно стираем «dd.MM»:

Что означает текущая дата

Шаг 6. Говорим ОК и ещё раз ОК и любуемся результатом:

Что означает текущая дата

Я допечатала «г.», чтобы никто не забыл, что это год.

Если вы щелкните по введённому полю, то увидите такую картину:

Что означает текущая дата

Поле по щелчку ЛМ окрашивается в серый цвет, поле окружает рамка с надписью «Обновить». Сохраните этот документ. Если вы откроете этот документ 1 января 2022 года, то вы увидите, что поле поменяло свое значение на «2022».

Для нижнего колонтитула вы можете повторить предыдущие шаги, а можно сделать проще.

Шаг 7. Копируем поле с текущим годом в буфер обмена → в нижнем колонтитуле находим место вставки из буфера обмена → вставляем → всё!

Что означает текущая дата

Причем я выделила и скопировала не только поле, а все содержимое ячейки (урок 51 «Таблица. Начало пути»). Потом я назначила полужирное начертание этому абзацу. Всё это никак не отразится кодах поля «Дата».

Как бы домашнее задание. Создайте шаблон служебной записки и вставьте поле «Дата» в полном формате:

Что означает текущая дата

Каждый раз при создании документа на основе этого шаблона в поле будет отражаться текущая дата. Порадуйте начальство!

Источник

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR)

Получить текущую дату в любом языке программирования, операция эквивалентная «Hello world!». Язык R не является исключением.

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

Что означает текущая дата

Содержание

Если вы интересуетесь анализом данных, и в частности языком R, возможно вам будут интересны мои telegram и youtube каналы. Большая часть контента которых посвящена языку R.

Работа с датами в базовом синтаксисе R

Преобразование текста в дату

В базовом R присутствует набор функций для работы с датами. Минус базового синтаксиса заключается в том, что регистр имён и аргументов функций очень разрознен, и практически не имеет логической связи. Тем не менее, базовые функции языка надо знать, поэтому начнём мы именно с них.

format принимает в строковом виде операторы обозначающие какой-либо временной интервал и его формат, наиболее часто используемые значения приведены в таблице ниже:

Бывают ситуации, когда вы получаете дату не только не соответствующую стандартным форматам (ГГГГ-ММ-ДД или ГГГГ/ММ/ДД), но ещё и на языке, который отличается от установленного в вашей операционной системе по умолчанию. Например, вы загрузили данные, где дата указана вот в таком виде: «Декабрь 15, 2019 г.». Перед конвертацией этой строки в дату вам необходимо поменять локаль.

Извлечение компонентов даты в базовом R

В базовом R не так много функций позволяющих извлекать какую либо часть даты из объекта класса Date.

Помимо основного класса объектов Date в базовом R есть ещё 2 типа данных которые хранят отметку времени: POSIXlt, POSIXct. Основное отличие этих классов от Date заключается в том, что кроме даты они хранят время.

Функция Sys.time() возвращает текущую дату и время в формате POSIXct. Этот формат по смыслу похож на UNIXTIME, и хранит в себе количество секунд с момента начала эры UNIX (полночь (по UTC) с 31 декабря 1969 года на 1 января 1970).

Класс POSIXlt так же хранит в себе время и дату, и все их компоненты. Поэтому является объектом с более сложной структурой, но из которого легко получить любой компонент даты и времени т.к. по сути POSIXlt это list.

Если ваши данные о дате и времени представлены в UNIXTIME, то для их конвертации в понятную, читаемую дату используйте следующий пример:

В origin вы можете указать любую временную метку. Например, если в ваших данных дата и время указаны как количество секунд начиная от 15 сентября 2019 года 12:15, то для преобразования их в дату используйте:

Работа с датами с помощью пакета lubridate

lubridate пожалуй самый популярный пакет для работы с датами на языке R. Он предоставляет вам дополнительно ещё три класса.

Установка пакета lubridate :

Преобразование текста в дату с помощью lubridate

Функции пакета lubridate значительно упрощают процесс конвертации текста в дату, а так же позволяют вам проводить любые арифметические операции с датами и временем.

Для преобразования строки в дату в lubridate есть целое семейство функций имена которых состоят всегда из трёх букв, и обозначают последовательность компонентов даты:

Несколько примеров для преобразования строк в даты:

Как видите lubridate значительно более эффективно умеет распознавать описание дат в виде текста, и позволяет вам преобразовывать текст в дату не используя дополнительных операторов для описания формата.

Извлечение компонентов дат с помощью пакета lubridate

Также с помощью lubridate можно получить любой компонент из даты:

Арифметические операции с датами

Но, наиболее важный и основной функционал lubridate заключается в возможности производить различные арифметические операции с датами.

Округление даты осуществляется тремя функциями:

Каждая из этих функций имеет аргумент unit, который позволяет вам указать единицу округления: second, minute, hour, day, week, month, bimonth, quarter, season, halfyear, year

Итак, давайте разберёмся с тем, как получить дату, которая будет через 8 дней после текущей даты и проводить различные другие арифметические вычисления между двумя датами.

Упрощённая работа с периодами, пакет timeperiodsR.

timeperiodsR — свежий пакет для работы с датами который был опубликован на CRAN в сентябре 2019 года.

Установка пакета timeperiodsR :

Основное назначение — быстрое определение некоторого временного интервала относительно заданной даты. Например с помощью его функций вы легко можете:

Название всех функций пакета timeperiodsR интуитивно понятны, и состоят из двух частей: направление_интервал, где:

Временные интервалы в timeperiodsR

Эти функции полезны в случаях, когда вам необходимо строить отчёты на основе данных за прошлую неделю или месяц. Чтобы получить прошлый месяц воспользуйтесь одноимённой функцией previous_month() :

После чего у вас будет объект prmonth класса tpr, из которого легко можно получить следующие компоненты:

Причём получить каждый из компонентов можно разными способами:

Также вы можете получить любой из компонентов используя аргумент part, который присутствует в каждой из функций пакета. Возможные значения: start, end, sequence, length.

Итак, давайте рассмотрим все аргументы доступные в функциях пакета timeperiodsR :

Таким образом, вы можете вычислять любой временной период относительно текущей, либо любой другой заданной даты, приведу ещё несколько примеров:

6 октября это воскресенье:
Что означает текущая дата

Нам необходим период, который относительно 6 октября возьмёт 3 предыдущие недели. Не включая неделю, в которую входит само 6 октября. Соответственно это период с 9 по 29 сентября.

Что означает текущая дата

В этом примере нас интересует месяц, который был 4 месяца назад, если отталкиваться от 16 сентября 2019 года, соответственно это был май 2019 года.

Фильтрация вектора дат с помощью timeperiodsR

Для фильтрации дат в timeperiodsR есть несколько операторов:

У пакета timeperiodsR есть официальный, русскоязычный плейлист на YouTube.

Заключение

Если вам интересен язык R приглашаю вас подписаться на мой телеграмм канал R4marketing, в котором я на ежедневной основе делюсь полезными материалами о применении языка R в решении своих повседневных задач.

Источник

Правильная работа с датой и временем

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

Логически можно выделить следующие типы значений, относящиеся к дате и времени:

Дата и время

Допустим, лаборатория, которая собрала материал для анализа находится в часовом поясе +2, а центральный филиал, в котором следят за своевременным выполнением анализов — в поясе +1. Время, приведенное в примере, было отмечено при сборе материала первой лабораторией. Возникает вопрос — какую цифру времени должен увидеть центральный офис? Очевидно, что программное обеспечение центрального офиса должно показывать 15 января 2014 года 12:17:15 — на час меньше, так как по их часам событие произошло именно в этот момент.

Рассмотрим одну из возможных цепочек действий, через которую проходят данные с клиента на сервер и обратно, позволяющую всегда корректно отображать дату/время согласно текущему часовому поясу клиента:

Правила перевода на летнее/зимнее время — вещь, строго говоря, переменная. Разные страны могут иногда менять свои правила, и эти изменения должны быть заблаговременно заложены в обновления системы. На практике неоднократно встречались ситуации некорректной работы этого механизма, которые по итогу решались установкой хотфиксов либо операционной системы, либо используемых сторонних библиотек. Вероятность повторения тех же проблем — не нулевая, поэтому лучше иметь способ гарантированно их избежать.

Учитывая описанные выше соображения, сформулируем как можно более надежный и простой подход к передаче и хранению времени: на сервере и в базе данных все значения должны быть приведены к часовому поясу UTC.

Рассмотрим, что нам дает такое правило:

Как видно из вышесказанного, не существует единого подхода, покрывающего 100% случаев. Поэтому сперва нужно четко понять из требований, какие из упомянутых выше ситуаций будут в вашей системе. С большой вероятностью, все ограничится первым предложенным подходом с хранением в UTC. Ну а описанные исключительные ситуации его не отменяют, а просто добавляют другие решения для частных случаев.

Дата без времени

Допустим, с правильным отображением даты и времени с учетом часового пояса клиента разобрались. Перейдем к датам без времени и примеру, указанному для этого случая в начале — «новый контракт вступает в силу 2 февраля 2016 года». Что будет, если для таких значений использовать те же типы и тот же механизм, что и для «обычных» даты с временем?

Есть несколько способов избежать преобразование для дат:

Временной интервал

С хранением и обработкой временных интервалов все просто: их величина не зависит от часового пояса, поэтому никаких особых рекомендаций здесь нет. Их можно хранить и передавать как количество единиц времени (целое или с плавающей точкой, в зависимости от необходимой точности). Если важна секундная точность — то как количество секунд, если миллисекундная — то как количество миллисекунд и т.д.

А вот вычисление интервала может иметь подводные камни. Предположим, у нас есть типовой код на C#, который считает интервал времени между двумя событиями:

На первый взгляд, никаких проблем здесь нет, но это не так. Во-первых, могут возникнуть проблемы с юнит-тестированием такого кода, но об этом мы поговорим чуть позже. Во-вторых, давайте представим, что начальный момент времени пришелся на зимнее время, а конечный — на летнее (например, таким образом замеряется количество рабочих часов, а у работников есть ночная смена).

Предположим, код работает в часовом поясе, в котором переход на летнее время в 2016 году происходит в ночь 27 марта, и смоделируем описанную выше ситуацию:

Этот код даст в результате 9 часов, хотя фактически между этими моментами прошло 8 часов. В этом легко убедиться, изменив код вот таким образом:

Отсюда вывод — любые арифметические операции с датой и временем нужно делать, используя либо UTC значения, либо типы, хранящие информацию о часовом поясе. А потом обратно переводить в локальные в случае надобности. С этой точки зрения, изначальный пример легко исправить, поменяв DateTime.Now на DateTime.UtcNow.

Этот нюанс не зависит от конкретной платформы или языка. Вот аналогичный код на Java, имеющий тот же недостаток:

Исправляется он также легко — например, использованием ZonedDateTime вместо LocalDateTime.

Расписание запланированных событий

Расписание запланированных событий – более сложная ситуация. Универсального типа, позволяющего хранить расписания, в стандартных библиотеках нет. Но такая задача возникает не так уж редко, поэтому готовые решения можно найти без проблем. Хорошим примером является формат планировщика cron, который в том или ином виде используется другими решениями, например, Quartz: http://quartz-scheduler.org/api/2.2.0/org/quartz/CronExpression.html. Он покрывает практически все нужды составления расписаний, включая варианты типа «вторая пятница месяца».

В большинстве случаев писать свой планировщик не имеет смысла, так как существуют гибкие проверенные временем решения, но если по какой-то причине есть надобность в создании своего механизма, то как минимум формат расписания можно позаимствовать у cron.

Общие рекомендации

Помимо описанных выше рекомендаций, посвященных хранению и обработке разнотипных значений времени, есть еще несколько других, о которых тоже хотелось бы сказать.

Во-первых, по поводу использования статических членов класса для получения текущего времени — DateTime.UtcNow, ZonedDateTime.now() и т.д. Как и было сказано, использование их напрямую в коде может серьезно усложнить юнит-тестирование, так как без специальных мок фреймворков подменить текущее время не получится. Поэтому, если вы планируете писать юнит тесты, следует позаботиться о том, чтобы реализацию таких методов можно было подменить. Для решения этой задачи есть как минимум два способа:

Второй нюанс с получением текущего времени — это то, что клиенту доверять нельзя. Текущее время на компьютерах пользователей может очень сильно отличаться от реального, и если есть логика, завязанная на него, то эта разница может все испортить. Все места, где есть необходимость получать текущее время, должны по возможности выполняться на стороне сервера. И, как уже было сказано ранее, все арифметические операции с временем должны производиться либо в UTC значениях, либо с использованием типов, хранящих смещение часового пояса.

И еще одна вещь, которую хотелось упомянуть — это стандарт ISO 8601, описывающий формат даты и времени для обмена информацией. В частности, строковое представление даты и времени, используемое при сериализации, должно соответствовать этому стандарту для предотвращения потенциальных проблем с совместимостью. На практике крайне редко приходится самому реализовывать форматирование, поэтому сам стандарт может быть полезен в основном в ознакомительных целях.

Источник

Дата и время

Содержание

Java предоставляет класс Date, который доступен в пакете java.util, этот класс заключает в себе текущую дату и время.

Конструкторы

Класс Date поддерживает два конструктора, которые показаны ниже.

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

Методы класса Date

Ниже представлены методы класса Date.

Методы с описанием
1boolean after(Date date)
Возвращает значение true, если вызывающий объект date содержит дату, которая раньше заданной даты, в противном случае он возвращает значение false.
2boolean before(Date date)
Возвращает значение true, если вызывающий объект date содержит дату, более раннюю, чем заданная дата, в противном случае он возвращает значение false.
3Object clone()
Дублирование вызывающего объекта date.
4int compareTo(Date date)
Сравнивает значение вызывающего объекта с этой датой. Возвращает 0, если значения равны. Возвращает отрицательное значение, если объект вызова является более ранним, чем дата. Возвращает положительное значение, если объект вызова позже даты.
5int compareTo(Object obj)
Работает точно так же compareTo(Date), если объект вызова имеет класс Date. В противном случае вызывает ClassCastException.
6boolean equals(Object date)
Возвращает значение true, если вызывающий объект date содержит то же время и дату, которая указана в date, в противном случае он возвращает значение false.
7long getTime()
Возвращает количество миллисекунд, истекших с 1 января 1970 года.
8int hashCode()
Возвращает хэш-код для вызывающего объекта.
9void setTime(long time)
Задает дату и время, соответствующие моменту времени, что представляет собой общее затраченное время в миллисекундах от полуночи 1 января 1970 года.
10String toString()
Преобразует вызывающий объект date в строку и возвращает результат.

Текущая дата и время в Java

Получить текущую дату и время в Java достаточно не трудно. Вы можете использовать простой объект date вместе с методом toString(), чтобы вывести текущую дату и время следующим образом:

Получим следующий результат:

Сравнение дат

Существуют три способа в Java сравнить даты:

Форматирование даты с помощью SimpleDateFormat

SimpleDateFormat — это конкретный класс для парсинга и форматирования даты в Java. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени. Например:

Получим следующий результат:

Формат-коды 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 и заканчивая одним из символов в таблице, приведенных ниже. Например:

Получим следующий результат:

Было бы немного глупо, если Вы должны были бы поставить дату несколько раз для форматирования каждой части. По этой причине формат строки может указывать индекс аргумента для форматирования.

Получим следующий результат:

Получим следующий результат:

Символы преобразования даты и времени

В Java вывод даты в нужном формате можно реализовать с помощью следующих символов преобразования:

СимволОписаниеПример
cТекущее время и датаВс ноя 13 01:19:27 FET 2016
FФормат даты ISO 8601 (год-месяц-день)2016-11-13
DАмериканский формат даты (месяц/день/год)11/13/16
T24-часовой формат времени01:26:09
r12-часовой формат времени01:26:51 AM
R24-часовой формат времени без секунд01:27
YТекущий год из четырех цифр (с ведущими нулями)2016
yПоследние две цифры года (с ведущими нулями)16
CПервые две цифры года (с ведущими нулями)20
BПолное название месяцаноября
bСокращенное название месяцаноя
mНомер текущего месяца (с ведущими нулями)11
dНомер текущего дня месяца (с ведущими нулями)09
eНомер текущего дня месяца (без ведущих нулей)9
AПолное название текущего дня неделивоскресенье
aСокращенное название дня неделиВс
jКоличество дней с начала года (с ведущими нулями)318
HФормат часа (с ведущими нулями), от 00 до 2301
kФормат часа (без ведущих нулей), от 0 до 231
IФормат часа (с ведущими нулями), от 01 до 1201
lФормат часа (без ведущих нулей), от 1 до 121
MМинуты (с ведущими нулями)38
SСекунды (с ведущими нулями)50
LМиллисекунды (с ведущими нулями)382
NНаносекунды (с ведущими нулями)775000000
p (%Tp)Верхний регистр маркера A.M./P.M.AM
p (%tp)Нижний регистр маркера A.M./P.M.am
zЧасовое смещение RFC 822 по GMT+0300
ZЧасовой поясFET
sСекунды, начиная с 1970-01-01 00:00:00 GMT1478991147
QМиллисекунды, начиная с 1970-01-01 00:00:00 GMT1478991172134

Есть и другие полезные классы, связанные с датой и временем. Для получения более подробной информации обратитесь к стандартной документации Java.

Преобразование строки в дату

Класс SimpleDateFormat имеет некоторые дополнительные методы, в частности parse(), который в Java поможет нам перевести строку в дату соответствии с форматом, хранящимся в данном объекте SimpleDateFormat. Например:

Получим следующий результат:

Задержка по времени

Вы можете увеличить или уменьшить время работы программы на любой период времени, от одной миллисекунды до срока службы вашего компьютера. Например, следующая программа будет находится в режиме ожидания в течение 10 секунд:

Получим следующий результат:

Вместо Thread.sleep() рекомендуется использовать TimeUnit(): TimeUnit.NANOSECONDS.sleep(), TimeUnit.MICROSECONDS.sleep(), TimeUnit.MILLISECONDS.sleep(), TimeUnit.SECONDS.sleep(), TimeUnit.MINUTES.sleep(), TimeUnit.HOURS.sleep() или TimeUnit.DAYS.sleep().

Время выполнения программы

Довольно просто можно узнать время выполнения кода вашей программы с помощью System.currentTimeMillis(). Для этого необходимо в начале программы записать в переменную значение System.currentTimeMillis(), а в конце вычесть из текущего значения System.currentTimeMillis() переменную, записанную вначале. Рассмотрим пример, в котором измерим скорость работы кода программы, которая выводит 10 случайных чисел на экран.

Получим следующий результат:

Разница дат в Java

Иногда Вам может понадобиться рассчитать разницу между датами, измерить точку во времени в миллисекундах. Поэтому давайте перепишем еще раз пример, находящийся выше:

Получим следующий результат:

Количество дней между датами

А иногда Вам может понадобиться в Java узнать количество дней, часов, минут и т.п. между датами. Рассмотрим один из способов нахождения дней между двумя датами ниже в примере:

Получим следующий результат:

Класс GregorianCalendar

GregorianCalendar является конкретной реализацией класса Calendar, который отображает обычный григорианский календарь, с которым Вы знакомы. Мы не обсуждали класс Calendar в этом учебнике, для этого Вы можете посмотреть стандартную документацию Java.

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

Существует несколько конструкторов для объектов GregorianCalendar:

Конструктор и его описание
1GregorianCalendar()
Создает значение GregorianCalendar, используя по умолчанию текущей датой и временем, локализацией и часовым поясом.
2GregorianCalendar(int year, int month, int date)
Создает GregorianCalendar в соответствии с заданной датой в часовом поясе и локализацией по умолчанию.
3GregorianCalendar(int year, int month, int date, int hour, int minute)
Создает GregorianCalendar в соответствии с заданной датой и временем в часовом поясе и локализацией по умолчанию.
4GregorianCalendar(int year, int month, int date, int hour, int minute, int second)
Создает GregorianCalendar в соответствии с заданной датой и временем в часовом поясе и локализацией по умолчанию.
5GregorianCalendar(Locale aLocale)
Создает GregorianCalendar в соответствии с текущим временем в часовом поясе по умолчанию в рамках заданной локализации.
6GregorianCalendar(TimeZone zone)
Конструирует GregorianCalendar, основанный на текущем времени в данной зоне времени с локализацией по умолчанию.
7GregorianCalendar(TimeZone zone, Locale aLocale)
Конструирует GregorianCalendar, основанный на текущем времени в заданном часовом поясе и локализации.

Список нескольких полезных методов, предоставляемых классом GregorianCalendar:

Методы с описанием
1void add(int field, int amount)
Добавляет указанное количество времени в данное временное поле в соответствии с правилами календаря.
2protected void computeFields()
Преобразует время по Гринвичу в миллисекунды до значения полей времени.
3protected void computeTime()
Преобразует значения временного поля Календаря в UTC формате в миллисекундах.
4boolean equals(Object obj)
Сравнивает этот GregorianCalendar эталонным объектом.
5int get(int field)
Получает значение для поля заданного времени.
6int getActualMaximum(int field)
Возвращает максимальное значение, которое это поле может иметь, учитывая текущую дату.
7int getActualMinimum(int field)
Возвращает минимальное значение, которое это поле может иметь, учитывая текущую дату.
8int getGreatestMinimum(int field)
Возвращает наибольшее минимальное значение для данного поля, если изменяется.
9Date getGregorianChange()
Получает изменения даты по григорианскому календарю.
10int getLeastMaximum(int field)
Возвращает минимально максимальное значение для данного поля, если изменяется.
11int getMaximum(int field)
Возвращает максимальное значение для данного поля.
12Date getTime()
Определяет текущее время в соответствии с календарем.
13long getTimeInMillis()
Получает текущее время по Календарю как длительное.
14TimeZone getTimeZone()
Возвращает часовой пояс.
15int getMinimum(int field)
Возвращает минимальное значение для данного поля.
16int hashCode()
Переопределите хэш-код.
17boolean isLeapYear(int year)
Определяет, является ли год високосным.
18void roll(int field, boolean up)
Добавление или вычитание (вверх/вниз) одной единицы времени в данном временном поле без изменений в больших полях.
19void set(int field, int value)
Устанавливает временное поле с заданным значением.
20void set(int year, int month, int date)
Задает значения для поля год, месяц и дата.
21void set(int year, int month, int date, int hour, int minute)
Задает значения для поля год, месяц, дату, час и минуту.
22void set(int year, int month, int date, int hour, int minute, int second)
Задает значения для поля год, месяц, дату, час, минуту и секунду.
23void setGregorianChange(Date date)
Устанавливает дату изменения грегорианского календаря.
24void setTime(Date date)
Устанавливает в соответствии с данным календарем текущее время с заданной датой.
25void setTimeInMillis(long millis)
Устанавливает в соответствии с данным календарем текущее время от заданного long значения.
26void setTimeZone(TimeZone value)
Задает часовой пояс со значением заданного часового пояса.
27String toString()
Возвращает строковое представление календаря.

Пример 1: вывод текущей даты и времени, високосный год

Получим следующий результат:

Для изучения полного списка констант в классе календаря обратитесь к стандартной документации Java.

Пример 2: получить день недели по дате

Получим следующий результат:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *