Рубрики
Без рубрики

Java – Как узнать текущую дату и время

Для Java `java.время. * “API, мы можем использовать”. теперь ()` чтобы получить текущую дату-время и отформатировать ее с помощью DateTimeFormatter.

В этом уроке мы покажем вам, как получить текущую дату и время из новой Java 8 java.time. * как Локальная дата , Местное время , Локальное время , Дата в зоне , Мгновенный а также устаревшие API даты и времени, такие как Дата и Календарь .

Содержание

  • 1. Получить текущую дату и время на Java
  • 2. java.время. Локальная дата
  • 3. java.время. Местное время
  • 4. java.время. Локальное время
  • 5. ява. время. Дата в зоне
  • 6. java.время. Моментальный
  • 7. java.использование. Дата (Наследие)
  • 8. java.использование. Календарь (Наследие)
  • 9. Рекомендации

Резюме

  • Для новой Java 8 java.время. * API, мы можем использовать .теперь () чтобы получить текущую дату-время и отформатировать ее с помощью Форматировщик даты и времени .
  • Для устаревших API-интерфейсов даты и времени мы можем использовать новую дату() и Calendar.getInstance() , чтобы получить текущую дату и время и отформатировать ее с помощью SimpleDateFormat .

1. Получить текущую дату и время на Java

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

Для java.время. LocalDate , использует LocalDate.сейчас()

  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd");
  LocalDate localDate = LocalDate.now();
  System.out.println(dtf.format(localDate));            // 2021/03/22

Для java.time.localtime , использует LocalTime.now()

  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
  LocalTime localTime = LocalTime.now();
  System.out.println(dtf.format(localTime));            // 16:37:15

Для java.время. LocalDateTime , использует LocalDateTime.now()

  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");
  LocalDateTime now = LocalDateTime.now();
  System.out.println(dtf.format(now));                  //  2021/03/22 16:37:15

Для java.время. ZonedDateTime , использует ZonedDateTime.now()

  // get current date-time, with system default time zone
  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");
  ZonedDateTime now = ZonedDateTime.now();
  System.out.println(dtf.format(now));                  // 2021/03/22 16:37:15
  System.out.println(now.getOffset());                  // +08:00

  // get current date-time, with a specified time zone
  ZonedDateTime japanDateTime = now.withZoneSameInstant(ZoneId.of("Asia/Tokyo"));
  System.out.println(dtf.format(japanDateTime));        // 2021/03/22 17:37:15
  System.out.println(japanDateTime.getOffset());        // +09:00

Для java.время. Мгновенный , использует Instant.now()

  Instant now = Instant.now();

  // convert Instant to ZonedDateTime
  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");
  ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(now, ZoneId.systemDefault());
  System.out.println(dtfDateTime.format(zonedDateTime));

Для java.util. Дата , использует новую дату()

  DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  Date date = new Date();
  System.out.println(dateFormat.format(date));           // 2021/03/22 16:37:15

Для java.util. Календарь , использует Calendar.getInstance()

  DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  Calendar cal = Calendar.getInstance();
  System.out.println(dateFormat.format(cal.getTime()));  // 2021/03/22 16:37:15

2. java.время. Локальная дата

Для java.времени. Локальные данные , использует Локальные данные.как() получить текущую дату без часового пояса и отформатировать ее с помощью Форматировщик даты и времени .

package com.mkyong.app;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class LocalDateExample {

  public static void main(String[] args) {

      DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd");
      LocalDate localDate = LocalDate.now();
      System.out.println(dtf.format(localDate));    // 2021/03/22

  }

}

Выход

  2021/03/22

3. java.время. Местное время

Для java.времени. LocalTime , использует LocalDate.now() , чтобы получить текущее время без часового пояса и отформатировать его с помощью Форматировщик даты и времени .

package com.mkyong.app;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class LocalTimeExample {

    public static void main(String[] args) {

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
        LocalTime localTime = LocalTime.now();
        System.out.println(dtf.format(localTime));    // 16:37:15

    }

}

Выход

  16:37:15

4. java.время. Локальное время

Для java.время. LocalDateTime , использует LocalDateTime.now() , чтобы получить текущее время даты без часового пояса и отформатировать его с помощью Форматировщик даты и времени .

package com.mkyong.app;

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

public class LocalDateTimeExample {

    public static void main(String[] args) {

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");
        LocalDateTime now = LocalDateTime.now();
        System.out.println(dtf.format(now));        //  2021/03/22 16:37:15

    }

}

Выход

  2021/03/22 16:37:15

5. ява. время. Дата в зоне

Для java.время. ZonedDateTime , использует ZonedDateTime.now() для получения текущей даты и времени с системным часовым поясом по умолчанию или указанным часовым поясом.

package com.mkyong.app;

import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class ZonedDateTimeExample {

  public static void main(String[] args) {

      DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");

      // Get default time zone
      System.out.println(ZoneOffset.systemDefault());         // Asia/Kuala_Lumpur
      System.out.println(OffsetDateTime.now().getOffset());   // +08:00

      // get current date time, with +08:00
      ZonedDateTime now = ZonedDateTime.now();
      System.out.println(dtf.format(now));                    // 2021/03/22 16:37:15
      System.out.println(now.getOffset());                    // +08:00

      // get get current date time, with +09:00
      ZonedDateTime japanDateTime = now.withZoneSameInstant(ZoneId.of("Asia/Tokyo"));
      System.out.println(dtf.format(japanDateTime));          // 2021/03/22 17:37:15
      System.out.println(japanDateTime.getOffset());          // +09:00

  }

}

Выход

Asia/Kuala_Lumpur
+08:00

2021/03/22 16:37:15
+08:00

2021/03/22 17:37:15
+09:00

6. java.время. Моментальный

Для java.время. Мгновенный , использует Instant.now() , чтобы получить секунды, прошедшие с момента эпохи Unix (полночь 1 января 1970 года по UTC), а затем преобразовать в другое java.time. * классы даты и времени, такие как LocalDate , Локальное время и Дата в зоне .

package com.mkyong.app;

import java.time.*;
import java.time.format.DateTimeFormatter;

public class InstantExample {

  private static final DateTimeFormatter dtfDate = DateTimeFormatter.ofPattern("uuuu/MM/dd");
  private static final DateTimeFormatter dtfTime = DateTimeFormatter.ofPattern("HH:mm:ss");
  private static final DateTimeFormatter dtfDateTime = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss");

  public static void main(String[] args) {

      // seconds passed since the Unix epoch time (midnight of January 1, 1970 UTC)
      Instant now = Instant.now();

      // convert Instant to LocalDate
      LocalDate localDate = LocalDate.ofInstant(now, ZoneId.systemDefault());
      System.out.println(dtfDate.format(localDate));

      // convert Instant to localTime
      LocalTime localTime = LocalTime.ofInstant(now, ZoneId.systemDefault());
      System.out.println(dtfTime.format(localTime));

      // convert Instant to LocalDateTime
      LocalDateTime localDateTime = LocalDateTime.ofInstant(now, ZoneId.systemDefault());
      System.out.println(dtfDateTime.format(localDateTime));

      // convert Instant to ZonedDateTime
      ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(now, ZoneId.systemDefault());
      System.out.println(dtfDateTime.format(zonedDateTime));

  }

}

Выход

2021/03/22
16:37:15
2021/03/22 16:37:15
2021/03/22 16:37:15

7. java.использование. Дата (Наследие)

Для унаследованного java.util. Дата , использует новую дату() или новая дата(System.currentTimeMillis() , чтобы получить текущее время даты и отформатировать его с помощью SimpleDateFormat .

package com.mkyong.app;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {

  public static void main(String[] args) {

      DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

      Date date = new Date();
      System.out.println(dateFormat.format(date));    // 2021/03/22 16:37:15

      // new Date() actually calls this new Date(long date)
      Date date2 = new Date(System.currentTimeMillis());
      System.out.println(dateFormat.format(date));    // 2021/03/22 16:37:15

  }

}

Выход

  2021/03/22 16:37:15
  2021/03/22 16:37:15

8. java.использование. Календарь (Наследие)

Для унаследованного java.util. Календарь , использует Calendar.getInstance() , чтобы получить текущее время даты и отформатировать его с помощью SimpleDateFormat .

package com.mkyong.app;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarExample {

  public static void main(String[] args) {

      DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
      Calendar cal = Calendar.getInstance();
      System.out.println(dateFormat.format(cal.getTime()));   // 2021/03/22 16:37:15

  }

}

Выход

  2021/03/22 16:37:15

9. Рекомендации

Оригинал: “https://mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/”