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

Java LocalDateTime, LocalDateTime на сегодняшний день, Java 8 LocalDateTime, LocalDate на LocalDateTime, Пример Java LocalDateTime, методы LocalDateTime плюс минус

Java LocalDateTime, LocalDateTime на сегодняшний день, Java 8 LocalDateTime, LocalDate на LocalDateTime, Пример Java LocalDateTime, методы LocalDateTime плюс минус

Автор оригинала: Pankaj Kumar.

Класс Java LocalDateTime является частью Java 8 Date API.

Java LocalDateTime

  1. Java LocalDateTime является неизменяемым классом , поэтому он потокобезопасен и подходит для использования в многопоточной среде.
  2. LocalDateTime обеспечивает вывод даты и времени в формате ГГГГ-ММ-ДД-чч-мм-сс.zzz , с возможностью расширения до наносекундной точности. Таким образом, мы можем хранить “2017-11-10 21:30:45.123456789” в объекте LocalDateTime.
  3. Как и в классе LocalDate , в LocalDateTime нет данных о часовых поясах. Мы можем использовать экземпляр LocalDateTime для получения информации о дате и времени общего назначения.
  4. Класс LocalDateTime реализует Сопоставимый , Хронолокальное время , Временное , Временный администратор , Временный процессор и Сериализуемые интерфейсы.
  5. LocalDateTime-это последний класс, поэтому мы не можем его расширять.
  6. LocalDateTime-это класс, основанный на значениях, поэтому мы должны использовать метод equals () , чтобы проверить, равны ли два экземпляра LocalDateTime или нет.
  7. Класс LocalDateTime представляет собой синергетическую “комбинацию” LocalDate и LocalTime с объединенным форматом, как показано на рисунке выше.

Импорт класса Java LocalDateTime

Класс Java LocalDateTime является частью пакета java.time . Поэтому мы можем импортировать его следующим образом:

import java.time.LocalDateTime;

Создание экземпляра LocalDateTime

Существуют следующие способы создания объекта LocalDateTime.

  1. Вызов метода static now (), который возвращает текущую дату и время с системных часов в часовом поясе по умолчанию.
  2. Путем передачи значений года, месяца, дня, часа, минуты, секунды и наносекунды в метода () . Этот метод перегружен, и один из них принимает аргументы в LocalDate и LocalTime.

  3. Используя метод parse() и передавая строковое представление даты и времени.

  4. Использование Instant() путем передачи мгновенной и зонной информации.

Получение информации о дате и времени из экземпляра LocalDateTime

Давайте рассмотрим некоторые методы LocalDateTime для получения информации о дате и времени.

  1. getHour() : возвращает значение int часа, содержащееся в объекте LocalDateTime, от 0 до 23.
  2. getMinute() : возвращает информацию о минутах int, от 0 до 59.
  3. getSecond() : возвращает значение int секунды, содержащееся в объекте LocalDateTime, от 0 до 59.
  4. getNano() : возвращает значение int наносекунды из объекта LocalDateTime в диапазоне от 0 до 999 999 999.

Помимо вышеперечисленного, методы запаса класса Localdate, такие как getYear (), getMonth (), getDayOfMonth (), getDayOfWeek (), getDayOfYear (), также применимы к классу LocalDateTime. Давайте рассмотрим эти методы на примере.

Пример Java LocalDateTime

package com.journaldev.java;

import java.time.LocalDateTime;

public class JavaLocalDateTimeExample {

	public static void main(String[] args) {

		LocalDateTime ldt = LocalDateTime.of(2017, 11, 6, 6, 30, 40, 50000);

		System.out.println("Hour = " + ldt.getHour());
		System.out.println("Minute = " + ldt.getMinute());
		System.out.println("Second = " + ldt.getSecond());
		System.out.println("Nano = " + ldt.getNano());

		System.out.println("Year = " + ldt.getYear());
		System.out.println("Month = " + ldt.getMonth());
		System.out.println("Date = " + ldt.getDayOfMonth());

	}

}

Методы Java LocalDateTime – плюс и минус

Класс LocalDateTime имеет множество методов для компонентов даты и времени с плюсом и минусом. Обратите внимание, что он возвращает копию объекта LocalDateTime с изменением, в указанном объекте никаких изменений не происходит. Некоторые из этих методов являются:

  1. плюс Часы(), плюс Минуты(), плюс Секунды() и плюсНанос() для добавления компонента времени в объект LocalDateTime.
  2. минус Часы(), минуты Минуты(), минуты Секунды() и минусНанос() для вычитания компонента времени в объекте LocalDateTime.
  3. плюс Годы(), плюс Месяцы(), плюс Недели() и плюс Дни() для добавления компонента данных в объект LocalDateTime.
  4. минус Годы(), минус Месяцы(), минус Недели() и минус Дни() для вычитания компонента данных в объекте LocalDateTime.

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

Вот пример для методов LocalDateTime плюс и минус.

package com.journaldev.java;

import java.time.LocalDateTime;

public class JavaLocalDateTimeExample {

	public static void main(String[] args) {

		LocalDateTime ldt = LocalDateTime.of(2017, 11, 10, 6, 0);
		System.out.println(ldt);
		
		//adding 1 year, 1 month, 1 week and 1 day
		LocalDateTime ldt1 = ldt.plusYears(1).plusMonths(1).plusWeeks(1).plusDays(1);
		System.out.println(ldt1);
		
		// subtracting 1 year, 1 month, 1 week and 1 day
		LocalDateTime ldt2 = ldt1.minusYears(1).minusMonths(1).minusWeeks(1).minusDays(1);
		System.out.println(ldt2);
		
		//adding 1 hour, 1 minute, 1 second and 100 nanos
		LocalDateTime ldt3 = ldt2.plusHours(1).plusMinutes(1).plusSeconds(1).plusNanos(100);
		System.out.println(ldt3);
				
		// subtracting 1 hour, 1 minute, 1 second and 100 nanos
		LocalDateTime ldt4 = ldt3.minusHours(1).minusMinutes(1).minusSeconds(1).minusNanos(100);
		System.out.println(ldt4);
				
	}
}

Результатом вышеуказанной программы является:

2017-11-10T06:00
2018-12-18T06:00
2017-11-10T06:00
2017-11-10T07:01:01.000000100
2017-11-10T06:00

Как вы можете видеть, если второе и третье значения равны 0, то они не возвращаются при вызове метода LocalDateTime toString ().

Java LocalDateTime на сегодняшний день

Нам следует избегать использования устаревших java.util.Дата класс, но при необходимости мы можем преобразовать LocalDateTime в дату, используя приведенный ниже код.

LocalDateTime ldt = LocalDateTime.of(2017, 11, 10, 6, 0);
Date date = Date.from(ldt.toInstant(ZoneOffset.UTC));
System.out.println(date); // prints "Fri Nov 10 11:30:00 IST 2017"

Обратите внимание, что приведенный выше вывод связан с тем, что в LocalDateTime нет информации о часовом поясе, поэтому нам необходимо указать часовой пояс для смещения и преобразования в локальный часовой пояс.

Это все для класса java LocalDateTime.

Ссылка: API Doc