Текущая дата и время в Java — программа с LocalDateTime

В современной Java для работы с датой и временем используется пакет java.time. Самый удобный класс для текущего момента — LocalDateTime, а форматирование выполняется через DateTimeFormatter.

Чтобы понять этот пример, нужно знать:

  • Строки в Java

  • Базовый ввод и вывод в Java

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

import java.time.LocalDateTime;

public class CurrentDateTime {

    public static void main(String[] args) {
        LocalDateTime current = LocalDateTime.now();

        System.out.println("Current Date and Time is: " + current);
    }
}

Вывод:

Current Date and Time is: 2017-08-02T11:25:44.973

В этой программе текущая дата и время сохраняются в переменную current методом LocalDateTime.now(). Для формата по умолчанию объект LocalDateTime неявно преобразуется в строку через метод toString().

Пример 2: текущая дата и время по заданному шаблону

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class CurrentDateTime {

    public static void main(String[] args) {
        LocalDateTime current = LocalDateTime.now();

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
        String formatted = current.format(formatter);

        System.out.println("Current Date and Time is: " + formatted);
    }
}

Вывод:

Current Date and Time is: 2017-08-02 11:29:57.401

В этой программе мы задали шаблон Year-Month-Day Hours:Minutes:Seconds.Milliseconds через объект DateTimeFormatter. Затем метод format() класса LocalDateTime применил этот форматтер и вернул отформатированную строку.

Пример 3: текущая дата и время через предопределённые константы

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class CurrentDateTime {

    public static void main(String[] args) {
        LocalDateTime current = LocalDateTime.now();

        DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;
        String formatted = current.format(formatter);

        System.out.println("Current Date is: " + formatted);
    }
}

Вывод:

Current Date is: 20170802

В этой программе мы использовали предопределённую константу BASIC_ISO_DATE, которая выводит дату в ISO-формате без разделителей.

Пример 4: текущая дата и время в локализованном стиле

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

public class CurrentDateTime {

    public static void main(String[] args) {
        LocalDateTime current = LocalDateTime.now();

        DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);
        String formatted = current.format(formatter);

        System.out.println("Current Date is: " + formatted);
    }
}

Вывод:

Current Date is: Aug 2, 2017 11:44:19 AM

В этой программе мы использовали локализованный стиль MEDIUM, который отображает дату и время в формате, привычном для текущей локали. Есть и другие стили: FULL, LONG и SHORT.