728x90
https://m-veloper.github.io/tip/2020/07/01/tip-java-09/
자주 쓰는 메소드 정리
LocalDate : [ 년,월,일 ]과 같은 날짜만 표현
LocalTime : [시,분,초]와 같이 시간만 표현
LocalDateTime : [ 년,월,일,시,분,초 ]를 표현
Period : 두 날짜 사이의 [년,월,일]로 표현
Duration : 두 시간 사이의 [ 일,시,분,초 ]로 표현되는 기간 (Instant 클래스를 사용하고, seconds와 nanoseconds로 측정 되지만 [ 일,시,분,초 ]로 변환해 주는 메쏘드를 제공
ChronoUnit : 한가지의 단위를 표현하기 위한 클래스 [ 년,월,일,시,분,초 등 ]
날짜 가져오기
LocalDate.now(); // 오늘
LocalDateTime.now(); // 지금
LocalDate.of(2020, 4, 17); // 2020년4월17일
LocalDateTime.of(2020, 4, 17, 23, 23, 50); // 2020년4월17일23시23분50초
Year.of(2020).atMonth(3).atDay(4).atTime(10, 30); // 2020년3월4일 10시30분00초
기간 가져오기
Period.ofYears(2); // 2년간(P2Y)
Period.ofMonths(5); // 5개월간(P5M)
Period.ofWeeks(3); // 3주간(P21D)
Period.ofDays(20); // 20일간(P20D)
Duration.ofDays(2); // 48시간(PT48H)
Duration.ofHours(8); // 8시간(PT8H)
Duration.ofMinutes(10); // 10분간(PT10M)
Duration.ofSeconds(30); // 30초간(PT30S
날짜 + 기간 = 날짜
LocalTime.of(9, 0, 0).plus(Duration.ofMinutes(10)); // (9시 + 10분간) = 9시10분
LocalDate.of(2020, 5, 15).plus(Period.ofDays(1)); // (2020년5월15일 + 1일간) = 2020년5월16일
LocalDateTime.of(2020, 4, 17, 23, 47, 5).minus(Period.ofWeeks(3)); // (2020년4월17일 23시47분05초 - 3주간) = 2020년3월27일 23시47분05초
LocalDate.now().plusDays(1); // (오늘 + 1일) = 내일 LocalTime.now().minusHours(3); // (지금 - 3시간) = 3시간 전
날짜 - 날짜 = 기간
Period.between(LocalDate.of(1950, 6, 25), LocalDate.of(1953, 7, 27)); // (1953년7월27일 - 1950년6월25일) = 3년1개월2일간(P3Y1M2D)
Period.between(LocalDate.of(1950, 6, 25), LocalDate.of(1953, 7, 27)).getDays(); // 3년1개월2일간 => 2일간
LocalDate.of(1950, 6, 25).until(LocalDate.of(1953, 7, 27), ChronoUnit.DAYS); // 3년1개월2일간 => 1128일간
ChronoUnit.DAYS.between(LocalDate.of(1950, 6, 25), LocalDate.of(1953, 7, 27)); // 3년1개월2일간 => 1128일간
Duration.between(LocalTime.of(10, 50), LocalTime.of(19, 0)); // (19시00분00초 - 10시50분00초) = 8시간10분간(PT8H10M)
Duration.between(LocalDateTime.of(2020, 1, 1, 0, 0), LocalDateTime.of(2016, 1, 1, 0, 0)).toDays(); // 365일간
ChronoUnit.YEARS.between(LocalDate.of(2020, 5, 5), LocalDate.of(2017, 2, 1)); // 1년간
날짜 변환(날짜 포맷)
- LocalDate -> String
LocalDate.of(2020, 12, 12).format(DateTimeFormatter.BASIC_ISO_DATE); // 20201212
- LocalDateTime -> String
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 2020-04-18 00:42:24
LocalDateTime -> java.util.Date
Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()); // Sat Apr 18 01:00:30 KST 2020
LocalDate -> java.sql.Date
Date.valueOf(LocalDate.of(2020, 5, 5)); // 2020-05-05
- LocalDateTime -> java.sql.Timestamp
Timestamp.valueOf(LocalDateTime.now()); // 2020-04-18 01:06:55.323
- String -> LocalDate
LocalDate.parse("2020-05-09"); // 2020-05-09
LocalDate.parse("20191004", DateTimeFormatter.BASIC_ISO_DATE); // 2019-10-04
- String -> LocalDateTime
LocalDateTime.parse("2019-12-03T10:15:30"); // 2019-12-03T10:15:30
LocalDateTime.parse("2019-11-25 12:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 2019-11-25T12:30
- java.util.Date -> LocalDateTime
LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()); // 2020-04-18T01:16:46.755
- java.sql.Date -> LocalDate
new Date(System.currentTimeMillis()).toLocalDate(); // 2020-04-18
- java.sql.Timestamp -> LocalDateTime
new Timestamp(System.currentTimeMillis()).toLocalDateTime(); // 2020-04-18T01:20:07.364
- LocalDateTime -> LocalDate
LocalDate.from(LocalDateTime.now()); // 2020-04-18
- LocalDate -> LocalDateTime
LocalDate.now().atTime(2, 30); // 2020-04-18T02:30
728x90
'프로그래밍 > Java' 카테고리의 다른 글
[java/자바] replaceAll(), trim() 공백 제거 안될 때 (0) | 2024.01.19 |
---|---|
자바 스윙(swing) 프로젝트 - 맛집 랜덤 추천 (2) | 2021.12.30 |
자바날짜, 시간 구하기 (LocalDate, LocalTime, LocalDateTime 사용법) (0) | 2020.07.01 |
jstl 에서 비교 연산 eq, ne, empty 사용법 (0) | 2020.06.26 |
[java/자바] Static 이란? Static 정리 (4) | 2020.06.24 |