PROGRAMMING LANGUAGE/JAVA

[JAVA 1.8↑] LocalDateTime, LocalDate, LocalTime

EARTH_ROOPRETELCHAM 2020. 12. 11. 00:14
728x90
반응형

LocalDate

import할 패키지명

import java.time.LocalDate;

사용 예

LocalDate currentDate = LocalDate.now();
// 현재 날짜가 넣어진 LocalDate 객체 리턴(예: 2020-12-10)

LocalDate startDate = LocalDate.of(2020,12,9);
// of 메소드의 파라미터로 넘어간 값에 따라 날짜 저장된 LocalDate 객체 리턴

LocalDate 자료형 타입 변환

LocalDate → String (YYYYMMdd)

LocalDate.of(2020,12,10).format(DateTimeFormatter.BASIC_ISO_DATE);

LocalDate  String (원하는 형식 - 예: yyyy-MM-dd)

LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

LocalDate → LocatDateTime

LocalDate.now().atTime(11,34);

LocalTime

import할 패키지명

import java.time.LocalTime;

사용 예

LocalTime currentTime = LocalTime.now();
// 현재 시간이 넣어진 LocalTime 객체 리턴(예: 23:21:30)

LocalTime startTime = LocalTime.of(20,10,9);
// of 메소드의 파라미터로 넘어간 값에 따라 시간이 저장된 LocalTime 객체 리턴
// 이때, 파라미터가 4개가 넘어가야 하지만 마지막 자리가 ns라 따로 넘기지 않으면 0ns로 들어감

LocalDateTime

import할 패키지명

import java.time.LocalDateTime;

사용 예

LocalDateTime currentDateTime = LocalDateTime.now();
// 현재 날짜와 시간이 넣어진 LocalDateTime 객체 리턴(예: 2020-12-10T23:22:20.120)

LocalDateTime startDateTime = LocalDate.of(2020,12,9,12,2,00);
// of 메소드의 파라미터로 넘어간 값에 따라 날짜 및 시간 저장된 LocalDateTime 객체 리턴
// 이 메소드 또한 ns는 넘기지 않아도 됨

LocalDateTime 자료형 타입 변환

DateTime 포맷 변경

import java.time.format.DateTimeFormatter;
// DateTimeFormatter 사용을 위해 import 해야 할 패키지

LocalDateTime now = LocalDateTime.of(2020,12,10,23,30,20);

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowDateTime = now.format(dateTimeFormatter);
// 형식 예: 2020-12-10 23:30:20

DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy년 M월 d일 a h시 m분 s초");
String nowDateTime2 = now.format(dateTimeFormatter2);
// 형식 예: 2020년 12월 10일 PM 11시 30분 20초

LocalDateTime → String(YYYY-MM-dd HH:mm:ss)

LocalDateTime.of(2020,12,10,13,41,30).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

LocalDateTime → LocalDate

LocalDate.from(LocalDateTime.of(2020,12,10,23,35,20));

시간 차이 계산

LocalDateTime startDateTime = LocalDateTime.of(2020,12,9,23,30,20);
// System.out.println(startDateTime) 결과: 2020-12-09T23:30:20

LocalDateTime endDateTime = LocalDateTime.now();
// System.out.println(endDateTime) 결과: 2020-12-10T14:20:56.695433

Duration duration = Duration.between(startDateTime, endDateTime);
duration.getSeconds();
// System.out.println(duration.getSeconds()) 결과: 53436

DateTime 더하기

  • 빼기는 plus 대신 minus* 사용하면 됩니다.
  • LocalDate 객체 또는 LocalTime 객체에서도 사용 가능합니다(물론, time 값 증가를 LocalDate에 쓰는 것은 의미 없음).
Return Type Method Description
java.time.LocalDateTime plusYears(long yearsToAdd) 년도 더하기
java.time.LocalDateTime plusMonths(long MonthsToAdd) 월 더하기
java.time.LocalDateTime plusWeeks(long WeeksToAdd) 주 더하기
java.time.LocalDateTime plusDays(long DaysToAdd) 일 더하기
java.time.LocalDateTime plusHours(long HoursToAdd) 시간 더하기
java.time.LocalDateTime plusMinutes(long MinutesToAdd) 분 더하기
java.time.LocalDateTime plusSeconds(long SecondsToAdd) 초 더하기
java.time.LocalDateTime plusNanos(long NanosToAdd) 나노초 더하기

Time 변경하기

  • LocalTime, LocalDateTime의 경우 with* 메소드를 사용하여 시간을 변경할 수 있습니다.
LocalDateTime now = LocalDateTime.now();
now.withHour(2); // 2시로 변경
now.withMinute(30); // 30분으로 변경
now.withSecond(32); // 32초로 변경
now.withNano(20); // 20나노초로 변경

//LocalDateTime객체.withHour(int hour)
//LocalDateTime객체.withMinute(int minute)
//LocalDateTime객체.withSecond(int second)
//LocalDateTime객체.withNano(int nano)
728x90
반응형