LocalDate, LocalTime, LocalDateTime

배세훈·2021년 6월 9일
0

java

목록 보기
1/16

짜 구하기
// LocalDate를 이용한 현재 날짜 구하기
LocalDate now = LocalDate.now();

// LocalDate에 날짜를 직접 입력
LocalDate targetDate = LocalDate.of(2021,06,09);

시간 구하기
// 현재 시간 구하기
LocalTime currentTime = LocalTime.now();

// LocalTime에 시간을 직접 입력, 4번째 매개변수는 nanoSecond
// 결과: 12:32:33.0000022
LocalTime tagetTime = LocalTime.of(12,33,35,22)

날짜 + 시간 구하기
// 현재 날짜와 시간 정보 구하기
LocalDateTime now = LocalDateTime.now();

// 현재 날짜, 시간 구하기, second(3), nanoSecond(4)는 선택
// 결과: 2019-11-12T12:32:22.000003333
LocalDateTime targetDateTime = LocalDateTime.of(2019,11,12,12,32,22,3333);

날짜 더하기

ex) 현재 날짜에서 2일 더하기
LocalDateTime now = LocalDateTime.now();
now.plusDays(2);

날짜 비교
LocalDateTime start = LocalDateTime.now(); // 현재 날짜 및 시간
LocalDateTime end = LocalDateTime.now().plusDays(2); // 현재 날짜보다 2일 뒤

start.isBefore(end); // 결과: false
start.isEqual(end); // 결과: false
start.isAfter(end); // 결과: true

날짜 차이 계산
LocalDate start = LocalDate.of(2019,11,12); // 2019-11-12
LocalDate end = LocalDate.of(2019,12,13); // 2019-12-13

Period period = Period.between(start, end);

period.getYears(); // 0년
period.getMonths(); // 1개월
period.getDays(); // 1일 차이

전체 시간을 기준으로 차이 계산하기

LocalDate start = LocalDate.of(2019,11,12);
LocalDate end = LocalDate.of(2019,12,13);

ChronoUnit.DAYS.between(start, end); // 결과: 31 (1개월 1일)

날짜 포맷
LocalDateTime now = LocalDateTime.now();

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일 a h시 m분");
DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

// 결과: 2021년 6월 9일 오전 9시 41분
String nowString = now.format(dateTimeFormatter);
// 결과: 2021-6-9일 09:41:22
String nowString2 = now.format(dateTimeFormatter2);

날짜 변환
1. LocalDateTime -> String
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

  1. LocalDateTime -> java.sql.Timestamp
    Timestamp.valueOf(LocalDateTime.now());

  2. LocalDateTime -> java.util.Date
    Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());

  3. String -> LocalDateTime
    LocalDateTime.parse("2021-06-09 09:40:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

해당 월에 마지막 날짜 찾기
String targetDate = "2021-06-09";

YearMonth target = YearMonth.from(LocalDate.parse(targeetDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")));

// 해당 월의 일 수(int)
target.lengthOfMonth(); // 30
// 해당 월의 마지막 날(LocalDate)
target.atEndOfMonth(); // 2021-06-30

profile
성장형 인간

0개의 댓글