- Rukovodstvo
- статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
- Как получить текущую дату и время в Java
- Введение В этой статье мы рассмотрим множество способов получить текущую дату и время в Java. Большинство приложений нуждаются в отметках времени событий или отображении даты / времени, среди многих других вариантов использования: * Когда мы публикуем блоги на веб-сайте, дата публикации записывается в базу данных и отображается читателю. * Когда мы совершаем действие, мы хотели бы знать, когда оно будет доступно, чтобы мы могли отслеживать их. * Когда мы покупаем что-то в Интернете или совершаем транзакцию, наш ba
- Вступление
- System.currentTimeMillis ()
- java.util.Date
- API календаря
- API даты / времени
- LocalDate
- Местное время
- LocalDateTime
- ZonedDateTime
- Часы
- Джода-Тайм
- Заключение
- Get current time and date on Android
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Как получить текущую дату и время в Java
Введение В этой статье мы рассмотрим множество способов получить текущую дату и время в Java. Большинство приложений нуждаются в отметках времени событий или отображении даты / времени, среди многих других вариантов использования: * Когда мы публикуем блоги на веб-сайте, дата публикации записывается в базу данных и отображается читателю. * Когда мы совершаем действие, мы хотели бы знать, когда оно будет доступно, чтобы мы могли отслеживать их. * Когда мы покупаем что-то в Интернете или совершаем транзакцию, наш ba
Вступление
В этой статье мы рассмотрим множество способов получить текущую дату и время в Java . Большинство приложений нуждаются в отметках времени событий или отображении даты / времени, среди многих других вариантов использования:
- Когда мы публикуем блоги на веб-сайте, дата публикации записывается в базу данных и отображается читателю.
- Когда мы совершаем действие, мы хотели бы знать, когда оно будет доступно, чтобы мы могли отслеживать их.
- Когда мы покупаем что-то в Интернете или совершаем транзакцию, наши банки предлагают нам список транзакций с точными отметками времени, чтобы мы могли их просмотреть.
Короче говоря, получение текущей даты и времени в Java очень важно и имеет множество применений, и, к счастью, это действительно легко получить для любого использования.
System.currentTimeMillis ()
Если вы хотите получить одно числовое значение миллисекунд, прошедших с эпохи UNIX , это так же просто, как:
Распечатка этого значения приведет к примерно следующему:
При преобразовании этого числа обратно в удобочитаемую дату оно представляет:
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));
Выполнение этого фрагмента кода даст:
Примечание: имейте в виду, что этот метод возвращает текущее значение в зависимости от вашего системного времени.
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));
И запуск этого фрагмента кода даст:
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 для его форматирования.
Выполнение этого фрагмента кода даст:
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));
Выполнение этого фрагмента кода даст:
Вы также можете передать 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));
Выполнение этого фрагмента кода даст:
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));
Выполнение этого фрагмента кода даст:
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));
Выполнение этого фрагмента кода даст:
Часы
Другой класс, представленный нам в 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);
Выполнение этого кода даст:
Вы можете создать зонированные Clock , передав ZoneId в Clock.system() :
Clock clock = Clock.system(ZoneId.of("Europe/Paris"));
Печать значения Instant принадлежащего clock , даст:
И, наконец, используя 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 очень похожа на работу с 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));
Выполнение этого фрагмента кода даст:
Заключение
Во многих случаях кому-то может понадобиться получить текущую дату и / или время в Java, и мы рассмотрели все подходы, которые существуют на данный момент для этого, включая более старые классы — java.util.Date и java.util.Calendar а также новые java.time которые появились с новым API даты / времени.
Кроме того, мы рассмотрели Joda-Time и его подход к получению текущей даты и времени.
Если вы хотите прочитать о преобразовании строки в дату в Java , у нас это есть!
Licensed under CC BY-NC-SA 4.0
Get current time and date on Android
As per Oracle documentation, SimpleDateFormat is a concrete class for formatting and parsing dates in a locale-sensitive manner. In this example, we have imported simple date format class from java as shown below —
import java.text.SimpleDateFormat; import java.util.Date;
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
In the above code, we have given text view, it going to print the current date on the window manager.
Step 3 − Add the following code to src/MainActivity.java
package com.example.andy.myapplication; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends AppCompatActivity < @TargetApi(Build.VERSION_CODES.O) @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView=findViewById(R.id.date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z"); String currentDateandTime = sdf.format(new Date()); textView.setText(currentDateandTime); >>
In the above code we are calling SimpleDateFormat and from the simpledateformat, we are accessing the current date in the string. There are so many date format are available. For more reference Click here.
Step 4 − No need to change manifest.xml.
Let’s try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from an android studio, open one of your project’s activity files and click Run from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −
In the above example, it contains a current date and time.
Click here to download the project code