Дата и время в Java 8. Изменение даты и времени

июля
08
2014

Содержание

Сразу следует исправиться, изменять объекты LocalDateTime, LocalDate или LocalTime нельзя. Это еще одно преимущество нового API - объекты даты и времени являются неизменяемыми (immutable), а поэтому - потоко-безопасными. Тем не менее, изменить дату можно. В результате просто будет создан новый объект с интересующими свойствами.

Для изменения даты и времени существуют методы (в классах LocalDateTime, LocalDate и LocalTime), начинающиеся с префикса with. Обратите внимания, что так как объекты даты и времени являются неизменяемыми, то эти методы не изменяют существующий объект, а возвращают новый с нужными значениями:

LocalDateTime withDayOfMonth(int dayOfMonth)
LocalDateTime withDayOfYear(int dayOfYear)
LocalDateTime withHour(int hour)
LocalDateTime withMinute(int minute)
LocalDateTime withMonth(int month)
LocalDateTime withNano(int nanoOfSecond)
LocalDateTime withSecond(int second)
LocalDateTime withYear(int year)

import java.time.LocalDateTime;
import java.time.Month;

public class Main {
	public static void main(String[] args) {
		LocalDateTime dateTime = LocalDateTime.of(2002, Month.JANUARY, 10, 22, 56, 59, 999_999_000);
		System.out.println("1 month later: " + dateTime.plusMonths(1));
		System.out.println("same date in February, 2012: " + dateTime
				.withMonth(Month.FEBRUARY.getValue())
				.withYear(2012));
	}
}

// output:
// 1 month later: 2002-02-10T22:56:59.999999
// same date in February, 2012: 2012-02-10T22:56:59.999999

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

< Дата и время в Java 8. Операции сложения и вычитания Дата и время в Java 8. Сравнение даты и времени >

Напишите первое сообщение!

Вы должны войти под своим аккаунтом чтобы оставлять комментарии