Как вывести дату java
Перейти к содержимому

Как вывести дату java

  • автор:

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Как получить текущую дату и время в Java

Введение В этой статье мы рассмотрим множество способов получить текущую дату и время в Java. Большинство приложений нуждаются в отметках времени событий или отображении даты / времени, среди многих других вариантов использования: * Когда мы публикуем блоги на веб-сайте, дата публикации записывается в базу данных и отображается читателю. * Когда мы совершаем действие, мы хотели бы знать, когда оно будет доступно, чтобы мы могли отслеживать их. * Когда мы покупаем что-то в Интернете или совершаем транзакцию, наш ba

Время чтения: 6 мин.

Вступление

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

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

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

System.currentTimeMillis ()

Если вы хотите получить одно числовое значение миллисекунд, прошедших с эпохи UNIX , это так же просто, как:

 System.currentTimeMillis(); 

Распечатка этого значения приведет к примерно следующему:

 1580897313933 

При преобразовании этого числа обратно в удобочитаемую дату оно представляет:

 Wednesday, 5 February 2020 10:08:33.933 

А чтобы сделать это на Java, нам понадобится всего пара строк кода:

 SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z"); Date date = new Date(System.currentTimeMillis()); System.out.println(formatter.format(date)); 

Выполнение этого фрагмента кода даст:

 2020-02-05 at 10:11:33 UTC 

Примечание: имейте в виду, что этот метод возвращает текущее значение в зависимости от вашего системного времени.

java.util.Date

В Java получить текущую дату так же просто, как создать экземпляр Date из пакета Java java.util :

 Date date = new Date(); // This object contains the current date value 

Мы можем легко отформатировать эту дату:

 SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); System.out.println(formatter.format(date)); 

И запуск этого фрагмента кода даст:

 05-02-2020 10:12:46 

API календаря

Среди множества классов Java есть Calendar , который используется для преобразования даты и времени между конкретными моментами и полями календаря.

Получить текущую дату и время очень просто с помощью календаря:

 Calendar calendar = Calendar.getInstance(); // Returns instance with current date and time set 

Опять же, мы можем легко отформатировать это:

 SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); System.out.println(formatter.format(calendar.getTime())); 

Метод getTime() возвращает объект Date Поскольку SimpleDateFormat работает только с Date , мы вызываем метод getTime() Calendar для его форматирования.

Выполнение этого фрагмента кода даст:

 25-11-2018 00:43:39 

API даты / времени

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

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

API даты / времени предоставляет несколько классов, на которые мы можем положиться при выполнении работы:

LocalDate

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

 LocalDate date = LocalDate.now(); // Gets the current date 

На этот раз вместо инициализации нового объекта мы вызываем статический метод now() который возвращает текущую дату в соответствии с системными часами с часовым поясом по умолчанию.

Мы можем отформатировать этот объект:

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); System.out.println(date.format(formatter)); 

Выполнение этого фрагмента кода даст:

 05-02-2020 

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

 LocalDate date = LocalDate.now(ZoneId.of("Europe/Paris")); // Gets current date in Paris 

Вы можете получить список всех доступных идентификаторов часовых поясов через:

 System.out.println(ZoneId.getAvailableZoneIds()); 
Местное время

LocalTime является противоположностью LocalDate , поскольку представляет только время без даты. Это означает, что мы можем получить только текущее время дня без фактической даты:

 LocalTime time = LocalTime.now(); // Gets the current time 

Мы можем легко отформатировать этот объект:

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); System.out.println(time.format(formatter)); 

Выполнение этого фрагмента кода даст:

 00:55:58 
LocalDateTime

И, наконец, LocalDateTime , наиболее часто используемый класс Date / Time в Java, представляет собой комбинацию двух предыдущих — хранит значение как даты, так и времени:

 LocalDateTime dateTime = LocalDateTime.now(); // Gets the current date and time 

Мы можем легко отформатировать этот объект:

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"); System.out.println(dateTime.format(formatter)); 

Выполнение этого фрагмента кода даст:

 05-02-2020 10:31:42 
ZonedDateTime

Наряду с предыдущими классами ZonedDateTime также предлагает эту функциональность:

 ZonedDateTime dateTime = ZonedDateTime.now(); // Gets the current date and time, with your default time-zone 

Мы можем легко отформатировать этот объект:

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"); System.out.println(dateTime.format(formatter)); 

Выполнение этого фрагмента кода даст:

 05-02-2020 10:32:26 
Часы

Другой класс, представленный нам в Java 8 Date / Time API, — это класс Clock Он обеспечивает доступ к текущему Instant , LocalDate , LocalTime и LocalDateTime с использованием часового пояса.

При этом, используя Clock , вы практически создаете экземпляры всех из них и можете получить доступ к тем, которые вам интересны.

 // Clock with the system's default timezone Clock clock = Clock.systemDefaultZone(); // Clock with the UTC timezone Clock clock = Clock.systemUTC(); 

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

 // Each of these obtain the current instance of that class from the clock LocalDateTime localDateTime = LocalDateTime.now(clock); LocalTime localTime = LocalTime.now(clock); LocalDate localDate = LocalDate.now(clock); Instant instant = Instant.now(clock); ZonedDateTime zonedDateTime.now(clock); 

Примечание: уместно спросить, почему мы использовали Clock вместо того, чтобы просто оставить метод now() пустым. Clock является обязательным, и метод now() обычно использует системные часы для определения значений. Хотя с помощью часов вы можете иметь больше, чем просто часы вашей системы, если хотите. Однако в нашем примере это не имеет значения.

Используя clock , мы можем извлечь Instant :

 Instant instant = clock.instant(); System.out.println(instant); 

Выполнение этого кода даст:

 2020-04-16T17:05:43.867063Z 

Вы можете создать зонированные Clock , передав ZoneId в Clock.system() :

 Clock clock = Clock.system(ZoneId.of("Europe/Paris")); 

Печать значения Instant принадлежащего clock , даст:

 2020-04-16T17:08:16.139183Z 

И, наконец, используя Clock помощью millis() , вы можете получить доступ к миллисекундному значению часов, которое совпадает с System.currentTimeMillis() :

 System.out.println(clock.millis()); System.out.println(System.currentTimeMillis()); 

Оба они распечатают:

 1587057153329 1587057153329 

Джода-Тайм

Joda-Time — это инструмент, который изначально был разработан для решения проблем со старыми классами времени и даты Java.

С выпуском Java 8 эти проблемы были решены, и Joda-Time выполнила свою задачу, хотя сегодня не используется очень часто.

Опять же, если ваш проект не обновлен до Java 8, Joda-Time по-прежнему является отличным инструментом для использования в качестве альтернативы.

Чтобы использовать его в своем проекте, проще всего просто добавить зависимость Maven:

  joda-time joda-time $ 

Работа с Joda-Time очень похожа на работу с Java Date / Time API:

 DateTime dateTime = new DateTime(); // Initializes with the current date and time 

Примечание. При первой инициализации DateTime Joda-Time возникают известные проблемы с производительностью из-за загрузки дескрипторов хронологии .

Этот объект легко отформатировать:

 DateTimeFormatter formatter = DateTimeFormatter.forPattern("dd-MM-yyyy HH:mm:ss"); System.out.println(fmt.print(dateTime)); 

Выполнение этого фрагмента кода даст:

 05-02-2020 10:33:05 

Заключение

Во многих случаях кому-то может понадобиться получить текущую дату и / или время в Java, и мы рассмотрели все подходы, которые существуют на данный момент для этого, включая более старые классы — java.util.Date и java.util.Calendar а также новые java.time которые появились с новым API даты / времени.

Кроме того, мы рассмотрели Joda-Time и его подход к получению текущей даты и времени.

Если вы хотите прочитать о преобразовании строки в дату в Java , у нас это есть!

Licensed under CC BY-NC-SA 4.0

5.4. Java примеры – Как получить текущее время и дату

В этом примере показано, как вывести текущую дату и время с помощью метода Calender.getInstance() класса Calender и метода fmt.format() класса Formatter.

import java.util.Calendar; import java.util.Formatter; public class MainClass < public static void main(String args[]) < Formatter fmt = new Formatter(); Calendar cal = Calendar.getInstance(); fmt = new Formatter(); fmt.format("%tc", cal); System.out.println(fmt); >> 

Результат

Результат будет меняться в зависимости от текущего системного времени и даты. Вышеприведенный пример кода даст следующий результат:

Wed Oct 18 20:37:30 GMT+05:30 2022 

Ниже приведен еще один пример вывода текущей даты и времени в Java.

import java.util.Date; public class DateDemo < public static void main(String args[]) < Date d = new Date(); System.out.println(d.toString()); >> 

Результат

Результат будет меняться в зависимости от текущего системного времени и даты. Вышеприведенный пример кода даст следующий результат:

Fri Nov 25 00:36:00 EST 2022 

Оглавление

  • 1. Java примеры – Использование кода на практике
  • 2. Java примеры – Окружающая среда
  • 2.1. Java примеры – Скомпилировать файл
  • 2.2. Java примеры – Установить путь к нескольким классам
  • 2.3. Java примеры – Отладка java-файла
  • 2.4. Java примеры – Установить путь к классу
  • 2.5. Java примеры – Просмотреть текущий путь класса
  • 2.6. Java примеры – Установить назначение файла класса
  • 2.7. Java примеры – Запустить скомпилированный java-файл класса
  • 2.8. Java примеры – Узнать версию Java
  • 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
  • 3. Java примеры – Строки
  • 3.1. Java примеры – Сравнить две строки
  • 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
  • 3.3. Java примеры – Удалить нужный символ из строки
  • 3.4. Java примеры – Заменить символ в строке
  • 3.5. Java примеры – Вывод в обратном порядке
  • 3.6. Java примеры – Нахождение символа или слова в строке
  • 3.7. Java примеры – Разбиение строки на слова и символы
  • 3.8. Java примеры – Преобразование строки в верхний регистр
  • 3.9. Java примеры – Найти слово в строке
  • 3.10. Java примеры – Сравнить производительность создания строки
  • 3.11. Java примеры – Оптимизировать создание строк
  • 3.12. Java примеры – Форматирование строк
  • 3.13. Java примеры – Конкатенация строк
  • 3.14. Java примеры – Определить код Юникода символа в строке
  • 3.15. Java примеры – Буферизация строк
  • 4. Java примеры – Массивы
  • 4.1. Java примеры – Сортировка массива и поиск элемента
  • 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
  • 4.3. Java примеры – Размер двумерного массива
  • 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
  • 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
  • 4.6. Java примеры – Найти максимальный и минимальный элемент массива
  • 4.7. Java примеры – Соединить два массива в один
  • 4.8. Java примеры – Как заполнить массив числами
  • 4.9. Java примеры – Увеличить массив после инициализации
  • 4.10. Java примеры – Сравнение двух массивов
  • 4.11. Java примеры – Удаление элемента из массива
  • 4.12. Java примеры – Удаление массива из другого массива
  • 4.13. Java примеры – Одинаковые элементы массивов
  • 4.14. Java примеры – Поиск в массиве
  • 4.15. Java примеры – Равенство двух массивов
  • 4.16. Java примеры – Сравнить массивы
  • 5. Java примеры – Дата и время
  • 5.1. Java примеры – Форматирование времени в формате AM-PM
  • 5.2. Java примеры – Получение названия и номера текущего месяца
  • 5.3. Java примеры – Получить текущее время в часах и минутах
  • 5.4. Java примеры – Вывести текущее время и дату
  • 5.5. Java примеры – Вывести текущее время в 24-часовом формате
  • 5.6. Java примеры – Получить текущий месяц
  • 5.7. Java примеры – Получить текущие секунды
  • 5.8. Java примеры – Получить короткое название месяца
  • 5.9. Java примеры – Получить день недели
  • 5.10. Java примеры – Добавление времени к дате
  • 5.11. Java примеры – Отображение времени в формате другой страны
  • 5.12. Java примеры – Отображение времени на разных языках
  • 5.13. Java примеры – Прокрутить часы и месяцы
  • 5.14. Java примеры – Получить номер недели и месяц в году
  • 5.15. Java примеры – Форматы текущей даты
  • 6. Java примеры – Методы
  • 6.1. Java примеры – Перезагрузка методов
  • 6.2. Java примеры – Вывод массива с использованием метода
  • 6.3. Java примеры – Решение Ханойской башни
  • 6.4. Java примеры – Последовательность чисел Фибоначчи
  • 6.5. Java примеры – Вычисление факториала числа
  • 6.6. Java примеры – Переопределение метода
  • 6.7. Java примеры – Вывод массива с использованием метода
  • 6.8. Java примеры – Использование оператора break
  • 6.9. Java примеры – Использование оператора continue
  • 6.10. Java примеры – Использование метки в методе
  • 6.11. Java примеры – Использование операторов enum и switch
  • 6.12. Java примеры – Использование конструктора enum

P0huber / CurrentDate.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package com . javarush . task . task05 . task0528 ;
/*
Вывести на экран сегодняшнюю дату
*/
import java . text . SimpleDateFormat ;
import java . time . LocalDateTime ;
import java . time . ZonedDateTime ;
import java . time . format . DateTimeFormatter ;
import java . util . Calendar ;
import java . util . Date ;
public class CurrentDate
public static void main ( String [] args )
System . out . println ( LocalDateTime . now ()); //in Java 8 we can use «java.time.LocalDateTime;»
System . out . println ();
System . out . println ( ZonedDateTime . now (). format ( DateTimeFormatter . RFC_1123_DATE_TIME )); //java.text.SimpleDateFormat; and java.time.format.DateTimeFormatter;
System . out . println ();
Date d = new Date ();
System . out . println ( System . currentTimeMillis ()); //single numeric value in milliseconds, delta from a UTC time-point
System . out . println ( d );
System . out . println ();
System . out . println ( Calendar . getInstance ()); //APIs are cumbersome
System . out . println ();
String timeStamp = new SimpleDateFormat ( «dd MM yyyy» ). format ( Calendar . getInstance (). getTime ()); //java.util.Calendar; and java.text.SimpleDateFormat;
System . out . println ( timeStamp );
System . out . println ();
System . out . println ( new SimpleDateFormat ( «yyyy/MM/dd HH:mm:ss» ). format ( new Date ())); //java.util.Date
//System.out.println(org.joda.time.DateTime());//Joda-Time is the de facto standard date and time library for Java prior to Java SE 8. Users are now asked to migrate to java.time (JSR-310).
>
>
/*Вывести на экран сегодняшнюю дату
Вывести на экран текущую дату в аналогичном виде «21 02 2014«.
Требования:
1. Дата должна содержать день, месяц и год, разделенные пробелом.
2. День должен соответствовать текущему.
3. Месяц должен соответствовать текущему.
4. Год должен соответствовать текущему.
5. Вся дата должна быть выведена в одной строке.*/

Java, получить текущую дату в формате 2020-12-23 тип Date

Возвращает — Wed Dec 23 15:02:32 IST 2020, при необходимом — 2020-12-23. Спасибо. Всем спасибо. Вопрос закрыт. Еще раз благодарю (просто менее 30 символов не принимает 🙂 ).

Отслеживать
69.8k 9 9 золотых знаков 66 66 серебряных знаков 122 122 бронзовых знака
задан 23 дек 2020 в 9:41
1 1 1 бронзовый знак

Не понятно чего же Вы хотите на самом деле. Ваш пример является вывернутым шиворот-навыворот вопросом.

23 дек 2020 в 9:54

Необходимо получить текущую дату, в переменную типа Date (передается в Query). Требуемый формат — 2020-12-23.

23 дек 2020 в 10:00
Ваш пример выглядит правильным. Так и надо поступать
23 дек 2020 в 10:05

К сожалению, переменная выходит в формате: Wed Dec 23 15:02:32 IST 2020. На что собстветнно, и ругается Java, мол нужно 2020-12-23, а ты даешь Wed Dec 23 15:02:32 IST 2020.

23 дек 2020 в 10:46

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

java.util.Date — это довольно сложно устроенный объект, который содержит внутри себя данные о дате и методы работы с ними. Вы, видимо, выполнили какой-то такой код:

String sDate1="2020-12-23"; Date date1=new SimpleDateFormat("yyyy-MM-dd").parse(sDate1); System.out.println(date1); 

Увидели в консоли Wed Dec 23 15:02:32 IST 2020 и подумали, что в date1 храниться какая-то неправильная строка.

Но в date1 не хранится строка. Там хранится дата (т.е. довольно сложно устроенный объект и т.д.).

Вы очень ловко превратили строку в дату — это хорошо. А теперь посмотрите, как вам превращать дату в строку нужного вида. Например, можно так:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String format = formatter.format(date1); System.out.println(format); 

Используя всё тот же SimpleDateFormat , кстати.

Просто когда она у вас строка — она всегда одинаковая строка. А когда она у вас дата — вы можете с помощью форматтера выбирать как именно должна выглядеть строка с датой.

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

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