Java как вывести текущую дату
Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.
What can I do to prevent this in the future?
If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.
If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.
Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.
Cloudflare Ray ID: 71a90c624bc775cf • Your IP : 82.102.23.104 • Performance & security by Cloudflare
Все о работе с календарными элементами в Java

Программирование – это не только написание сложных кодовых структур. Рано или поздно каждый разработчик сталкивается с форматированием даты, а также времени. За реализацию подобных операций отвечают специализированные классы. Их довольно много, но на практике используются преимущественно два варианта.
При помощи соответствующих классов в Java можно вычислять текущее время. Дополнительно программеры смогут задействовать для форматирования отдельный class в Джаве. В данной статье будет рассказано об этих нюансах, а также об основах работы с календарем при создании приложений на Java.
Java – что это такое: особенности языка
Но перед этим стоит понять, нужно ли вообще разбираться в целых классах Джавы. Это не всегда простая задача, особенно для новичков.
Java – перспективный и современный язык программирования. Он предусматривает:
- простой для понимания и интерпретации синтаксис;
- многофункциональность;
- разнообразные инструменты для быстрого коддинга и создания крупных проектов;
- наличие ООП.
Писать на этом языке можно совершенно разные программы – и для работы, и для развлечений. Основное предназначение Java – работа с веб-утилитами. В них вопросы, связанные с датой и временем, иногда обостряются.
Отличительной особенностью Java является то, что это – универсальный кроссплатформенный язык. Перенести программу с одной платформы на другую не составит никакого труда. Данный вариант – отличный выбор как для новичка, так и для опытного программиста.
Внимание: большинство движков для создания игр поддерживают Джава-семейство.
Терминологический вопрос – что запомнить перед началом работы
Для того, чтобы работать с текстом, а также объектами в программном коде, разработчик должен понимать, с чем он имеет дело. В программировании есть термины, без осознания которых создать собственное приложение и понять, как оно работает, невозможно.
Чтобы не запутаться в понятиях, рекомендуется запомнить следующие понятия:
- алгоритмы – свод правил и инструкций, предназначенных для решения определенных задач;
- аргументы – значения, передаваемые в функции и команды;
- переменные – элементарные «хранилища» информации;
- объекты – сочетания связанных переменных, констант, а также иных сведений структурного характера, способные выбираться и обрабатываться совместно;
- класс – набор связанных объектов с общими свойствами;
- методы – список правил, определяющих возможности того или иного элемента кода;
- цикл – неоднократное повторение одних и тех же манипуляций (части кодификации);
- константа – неизменяемое в ходе выполнения утилиты значение;
- массив – перечень/группы схожих типов информации, подлежащий группировке;
- операнд – элемент, которым удается манипулировать через так называемые операторы;
- оператор – объект в программном коде, позволяющий управлять операндами (пример – сложение или вычитание).
Непосредственно с датой и часами перечисленные термины ничего общего не имеют, но предложенная вниманию информация будет полезна в процессе создания собственных приложений. Как тех, кто работают с часами, так и примитивных утилит. Это – база, которая пригодится любому программисту перед началом работы.
Разбор календаря – с чем предстоит иметь дело
Каждый современный человек знает, что такое календарь. Можно использовать форматирование calendar в своих приложениях при программировании. Это – весьма полезные опции, которые довольно легко реализовать на практике.
Пользователю предстоит работать со следующими элементами:
- какое сейчас/было число (день недели, конкретная дата (включая месяц));
- часовой пояс;
- время (час, минута, секунда).
Для того, чтобы понять, какие объекты будут корректироваться и определяться, достаточно посмотреть на «часы» в операционной системе. Там отображается текущая дата, а также конкретное время.
Внимание: на компьютере соответствующая «часовая» информация – это определенное количество миллисекунд. При программировании подобные данные будут храниться в отдельном классе/файле.
Классы в Java для работы с часами
Для того, чтобы работать с форматом даты в Java, предстоит изучить несколько отдельных классов. Джава предусматривает их для того, чтобы использовать в приложениях и играх calendar.
На данный момент известны следующие варианты классов:
- Date;
- Calendar;
- TimeZone.
Первый два – самостоятельные составляющие, которые относятся к библиотеке java.utill. Последний обособлено не задействуется.
Класс Date
С января 1970 года хранит часы в миллисекундах. Класс обладает собственным конструктором по умолчанию. Он отвечает за конкретную операцию – возвращает текущее время.
Разработчики могут заняться созданием объекта Date при помощи конструктора, принимающего количество миллисекунд, начиная с 1970 года. Для того, чтобы уточнить внутреннее время, принято использовать методы класса Date под «названиями» setTime и getTime.
При применении класса Date осуществляется инициализация объекта. Дата и часы будут зависеть от задействованного конструктора. Всего их несколько:
- Date() — отвечает за часы и дату объекта на данный момент, «здесь и сейчас»;
- Date(long millisec) – принятие аргумента, равного количеству миллисекунд, прошедших с начала 1.01.1970 года.
В основном на практике встречается первый вариант. Чуть позже будет приведен наглядный пример того, как использовать дату и часы с соответствующим «элементом» программного кода.
О методах
Date имеет множество разнообразных методов. Они отвечают за те или иные манипуляции. Ориентироваться можно на следующую информацию:
- Int compareTo(дата дата) – производит сравнение дат. Если они совпадают, значение возвращается к 0, отрицательным оно будет, если вызывающая дата более ранняя. В противном случае – значение положительное.
- Boolean equals(object object) – при совпадении дат происходит возврат true.
- Long GetTime() – указывает, сколько миллисекунд на момент отправки запроса прошло с 1 января 1970 года.
- Void setTime(long milliseconds) – установка часов и даты в количестве миллисекунд, которые прошли с 1970-го.
- Boolean after(date date) – когда объект содержит более позднюю дату, нежели прописано в параметре date, возвращается значение «истина».
- Boolean before – аналогично предыдущему варианту, но true выходит, если объект включает в себя более ранее «значение».
Все это помогает взаимодействовать с часами, а также с тем, какое сегодня/было когда-то число.
Вот пример вывода даты в консоль:

И наглядный образец применения GetTime():

У рассматриваемого class есть подкласс, который тоже весьма активно применяется на практике. Он пригодится при непосредственном форматировании.
Подкласс SimpleDateFormat
SimpleDateFormat – это отдельный и удобный класс, который является своеобразным подклассом DateFormat. Позволяет отображать месяц, число и часы в том формате, который кажется пользователю наиболее удобным.
Чтобы лучше понимать принцип его работы, стоит рассмотреть наглядный пример кода:
Для того, чтобы создать такой шаблон, пришлось использовать подобные параметры:
- dd – day;
- MM – название месяца;
- yyyy – год;
- hh – часы;
- mm – минуты.
Под видом разделителя можно применять современно разный текст. Тот, что разработчику приходится по вкусу больше всего.
Символика форматирования строк
SimpleDateFormat – это подкласс DateFormat, который дает возможность определять собственные шаблоны для вывода на экран даты и времени. Для реализации поставленной задачи принято использовать определенные символьные записи.
- A – AM или PM (актуально для часов в 12-часовом «формате»);
- d – день месяца;
- D – день года;
- H – часы, которые работают в формате день/ночь;
- K – «суточные» часы;
- S – секунды;
- M – минуты;
- W – week of year;
- y – год;
- z – часовой пояс.
То, сколько раз повторяется конкретный символ, указывает на способ представления календарной информации. Так можно использовать записи yyyy-mm-dd и hh:mm:ss или yy-mm-dd и h:m:s. В первом случае будет запись типа 1994-01-15 и 20:45:15. Во втором, если требуется, перед соответствующей цифрой будет выводиться дополнительный 0.
Класс Calendar
Для того, чтобы работать с календарной информацией, разработчику предоставляют разнообразные методы. Есть абстрактный класс Calendar, которые умеет работать в пределах календаря с датами. Он может прибавлять дни, а также принимать во внимание високосные года. Дополнительно преобразовывает время (миллисекунды) в более удобном пользователю формате.
Реализация Calendar производится классом GregorianCalendar. Как и у Data конструктор будет возвращать календарь на текущий день. Но здесь допустимо задавать его явным образом. Достаточно прописать все параметры оного:

- areFieldsSet – указатель на то, были ли заданы компоненты времени;
- fields – массив целочисленных значений временных элементов;
- isSet – массив вида Boolean, который указывает на наличие специфического компонента «часов»;
- time (типа long) – текущее время элемента;
- isTimeSet – указатель на установку текущих «часов».
Данный вариант является весьма мощным, особенно если нужно вывести на экран полное название месяца или недели.
Методы
Для того, чтобы задействовать Calendar, необходимо запомнить следующие методы:

Формат даты можно менять при помощи соответствующего класса и различных типов данных. К ним относят следующие варианты:
- day_of_week – день недели;
- day_of_year – день года;
- day_of_month – месяц (день);
- week_of_month – неделя месяца;
- week_of_year – годовая неделя;
- Year – год;
- Calendar.ERA – эра.
С Day_of_week предстоит взаимодействовать, если хочется на календаре или в приложении вывести название конкретного дня недели.

Это – наглядный пример того, как можно использовать перечисленные типы информации на практике.
О классе GregorianCalendar
Используя текущую дату в Java, можно столкнуться с подклассом Calendar, который носит название GregorianCalendar. Он представляет Григорианский календарь. При помощи метода getInstance() происходит возврат объекта GregorianCalendar, инициированный нынешней датой и часами согласно региональным параметрам.
Класс имеет поля AD и BC. Первый вариант – до нашей эры, второй – наша эра. И дополнительно здесь предусматривается метод isLeapYear(). Отвечает за проверку високосности года. Выглядит так:

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

Корректировку объекта производят через set(). Данный пример помогает разобраться в принципах установки новой даты:

Сдвиг даты на тот или иной период производится через add():

А вот пример преобразований:

Здесь весьма полезными будут методы setTime() и getTime().
Класс TimeZone
TimeZone не позволяет «просто так» корректировать часы. Этот class используется только совместно с Calendar или DateFormat. Обладает следующими особенностями:
- относится к абстрактным – от него нельзя порождать объекты;
- для «порождения» применяется метод getDefault() – он возвращает экземпляр наследника с параметрами, скопированными из ОС;
- обладает статистическим методом getTimeZone, который отвечает за указание имени конкретного временного пояса;
- поля, отвечающие за параметризацию getTimeZone нигде не прописаны;
- присутствует статистический метод getAvailableIds(), который возвращает перечень возможных значений наименований временных зон типа string[];
- набор для параметризации может быть определен относительно Гринвича: string[] getAvailableIds(int offset).
Далее будет приведен образец программного кода, который последовательно поможет вывести на экран не часы, а временную зону по умолчанию, все варианты оного, а также те «территории», которые совпадают со временем «по Москве».
Выглядит этот код так:

Данная кодификация работает так:
- Align – выравнивает отображение информации от «часов», заданных по Гринвичу;
- drawTimeZoneParam – параметры ТаймЗон;
- в конструкторе TimeZoneList определяется нынешняя TimeZone, далее осуществляется вывод всех вариантов, которые могут быть.
А еще метод getAvailableIDs позволит получить перечень TimeZone, у которых имеет место смещение по времени, совпадающее с текущей «территорией».
Всемирное координирование
В процессе программирования иногда недостаточно задействовать dates, days, time. Часто приходится пользоваться временным сдвигом, который относится к нестандартной деятельности человека. Пример – расписание поездов по России.
Для этого используется TimeZone UTC. UTC – это всемирное координирование времени. Заменяет Гринвич. В Джаве можно работать с Date для координации часов, но это – лишние манипуляции. При программировании они не нужны.
Ниже представлен наглядный пример применения TimeZone UTC. Здесь часы будут привязаны к одной из сторон (серверной), на компьютере устанавливаются различные «зональности». Для того, чтобы установить конкретный вариант, потребуется:
- обратиться к панели управления;
- открыть раздел «Data and Time»;
- выбрать TimeZone, которую хочется.
Код имеет следующую форму записи:

Применяются три TimeZone (current Zone). В двух вариантах (Москва и UTC) выводится в консоль:
- объект Data в состоянии «not formatted»;
- он же, но с форматирование и DateFormat/SimpleDateFormat.
Для того чтобы программа функционировала в конкретной временной зоне, требуется через SetDefault установить подходящий вариант в процессе обработки «времени».
В помощь программисту
Java позволяет работать с calendar day_of_week и другими параметрами календарного характера всем программистам. Чтобы облегчить понимание принципов взаимодействия, а также используемые formats и классы, стоит углубленно изучить Джаву.
Сделать это помогают специализированные курсы. Возможно очное и дистанционное обучение. Курсы рассчитаны на срок до года. По завершению выдаются сертификаты установленного образца. Во время занятий программерам объяснят, что такое формат даты, научат основам написания кодов на Джаве. Есть предложения не только для новичков, но и для тех, кто хочет улучшить свои навыки в Java. В процессе обучения можно общаться не только с коллегами, но и с опытными преподавателями.
How to get current date and time in Java
One of the most common tasks while developing an application in Java is to get the current date and time for timestamping different events. For example, when you buy a product online, send an email, or even post an update on your social media profile, you would often notice the exact creation timestamp.
In this article, we will look at different ways to get the date and time in Java using both legacy classes ( Date & Calendar ) as well as Java 8 new date and time API.
Java 8 introduced a whole new date and time API (classes in java.time.* package) to address the shortcomings of the existing API ( java.util.Date & java.util.Calendar ). The new API is not only thread-safe but also much more user-friendly with a lot of utility methods for performing different date and time tasks.
Let us look at some of the important classes from Java 8 new date and time API that you can use to get the current date and time.
As the name suggests, the LocalDate class stores date in the ISO-8601 format (yyyy-MM-dd) without any time or timezone information. This means that you can only get the current date in the system default timezone without time.
Here is an example that shows how you can use LocalDate to get the current date:
The above code outputs the following:
The LocalTime class does the opposite of LocalDate . It stores the local time in ISO 8601 format without any date or timezone information. This means that you can get the current time of the day without the actual date as shown below:
You should see the following output if you run the above code snippet:
The LocalDateTime class, the most popular date and time class in Java, holds both local date and time without any timezone information. Here is an example that demonstrates how you can use LocalDateTime to get the current date and time in Java 8 and higher:
Here is how the output of the above code looks like:
Finally, ZonedDateTime is used to store both date and time along with the timezone information. Here is an example that shows how you can get the current zoned date and time using the system default timezone:
If you run the above code snippet, you should see something like below printed on the console:
To get the current date and time for a different timezone, you can use ZoneId identifier as shown below:
Here is the output:
The Instant class is used to represent a specific moment on the timeline. You can use this class to get the current UTC date and time as EPOCH seconds or milliseconds as shown below:
The above code snippet generates the following output:
Note: Check out Introduction to Java 8 Date and Time API tutorial for more new date and time API examples.
Another way of getting the current date and time in Java is by using the legacy Date and Calendar classes. All you need to do is create an instance of Date , use SimpleDateFormat to create the desired format, and then pass the date object to SimpleDateFormat.format() method to get the current date and time as a string.
To get the current date and time, you only need to instantiate the java.util.Date object. Optionally, if you want to display the current date and time in a different format, you can use the SimpleDateFormat class to format the Date object as shown below:
The above code will print the console on the console:
The Calendar class in Java is used to convert for converting between a specific instant in time and a set of Calendar fields. To use Calendar to get the current date and time, you need to do the following:
- Create an instance of Calendar by calling getInstance() static method of it.
- Use Calendar.getTime() method to get the current date and time as a Date object.
- Optionally, format the date using SimpleDateFormat to display it in a different format.
Here is an example:
As you can see above, using the Calendar class is as simple as using Date . You just create a Calendar instance and then get the current date and time as a Date object. The rest of the code is similar to what we did in the previous example.
By default, both Date and Calendar classes return the current date and time in the default system timezone. To get the current date and time in a different timezone, you need to explicitly set the desired timezone.
Here is an example that shows how you can set the timezone while formatting the Date object using SimpleDateFormat :
The above code will output the following:
If you are using Calendar , you can use the Calendar.setTimeZone() method to change the default timezone to the one you want to as shown below:
Here is how the output looks like now:
If you only want to get the current date and time as number of milliseconds passed since the UNIX EPOCH, just use System.currentTimeMillis() . This method returns the current time in milliseconds:
The above code snippet will print the following on the console:
To convert the above milliseconds into human-readable format, you can do the following:
Here is how the output looks like now:
There are many scenarios where you need the current date and time in Java. In this article, we have discussed almost all possible ways to get the current date and time in Java including Java 8 new date and time API, legacy Date and Calendar classes, and more.
The new date and time API provides an extensive set of classes that has simplified working with date and time in Java 8 and higher. These classes are thread-safe, easier-to-understand, and backward compatible.
If you are working on a legacy application that uses the old Date and Calendar API, you can easily convert the legacy code to the new date and time API.
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.