Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch14
- jpa 활용2 - api 개발 고급
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch9
- 스프링 mvc2 - 로그인 처리
- 스프링 고급 - 스프링 aop
- @Aspect
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 서블릿
- 자바 기본편 - 다형성
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch2
- 스프링 입문(무료)
- 2024 정보처리기사 수제비 실기
- 자바 중급1편 - 날짜와 시간
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch4
- jpa - 객체지향 쿼리 언어
- 게시글 목록 api
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch6
- 스프링 db2 - 데이터 접근 기술
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch5
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch7
- 2024 정보처리기사 시나공 필기
Archives
- Today
- Total
나구리의 개발공부기록
날짜와 시간, 날짜와 시간의 주요 메서드 정리 본문
출처 : 인프런 - 김영한의 실전 자바 - 중급1편 (유료) / 김영한님
유료 강의이므로 정리에 초점을 두고 코드는 일부만 인용
1. 날짜와 시간의 주요 메서드 정리
1) LocalDateTime의 주요 메서드
(1) 생성(Creation)
메서드 | 설명 |
now() | 현재 시간대의 날짜와 시간을 가지는 LocalDateTime 인스턴스를 반환 |
of(int year, int month, int dayOfMonth, int hour, int minute) |
주어진 날짜와 시간으로 LocalDateTime 인스턴스를 생성 |
of(int year, int month, int dayOfMonth, int hour, int minute, int second) |
초를 포함하여 주어진 날짜와 시간으로 LocalDateTime 인스턴스를 생성 |
of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond) |
나노초까지 포함하여 주어진 날짜와 시간으로 LocalDateTime 인스턴스를 생성 |
of(LocalDate date, LocalTime time) | LocalDate와 LocalTime을 결합하여 LocalDateTime 인스턴스를 생성 |
from(TemporalAccessor temporal) | 다른 시간 객체로부터 LocalDateTime 객체를 생성 |
(2) 변환
메서드 | 설명 |
toLocalDate | LocalDateTime 인스턴스의 날짜 부분을 LocalDate로 변환 |
toLocalTime | LocalDateTime 인스턴스의 시간 부분을 LocalTime으로 변환 |
toEpochSecond(ZoneOffset offset) | 주어진 시간대 오프셋을 사용하여 에포크 초로변환 |
(3) 시간대 관련 (Time-Zone)
메서드 | 설명 |
atZone(ZoneId zone) | 지정된 시간대를 사용하여 ZonedDateTime 인스턴스를 생성 |
(4) 조회 (Query)
메서드 | 설명 |
get(TemporalField field) | 지정된 필드를 반환하며 주로 Chronofield를 사용함 |
getYear() | 연도를 반환 |
getMonth() | 월을 반환 |
getDayOfMonth() | 일(월의 몇 번째 날)을 반환 |
getDayOfWeek() | 요일을 반환 |
getHour() | 시간을 반환 |
getSecond() | 초를 반환 |
getNano() | 나노초를 반환 |
(5) 비교 (Comparison)
메서드 | 설명 |
isBefore(LocalDateTime other) | 다른 LocalDateTime보다 이전인지 비교 |
isAfter(LocalDateTime other) | 다른 LocalDateTime보다 이후인지 비교 |
isEqual(LocalDateTime other) | 다른 LocalDateTime과 같은지 비교하며 시간을 기준으로 비교함 |
(6) 수정 (Adjustment)
메서드 | 설명 |
with(TemporalField field, long newValue) | 지정된 필드를 새 값으로 변경 |
with(temporalAdjuster adjuster) | 제공된 조정기를 사용하여 날짜를 조정 |
withYear(int year) | 연도를 수정 |
withMonth(int month) | 월을 수정 |
withDayOfMonth(int dayOfMonth) | 일(월의 몇 번재 날)을 수정 |
withHour(int hour) | 시간을 수정 |
withMinute(int minute) | 분을 수정 |
withSecond(int second) | 초를 수정 |
withNano(int nanoOfSecond) | 나노초를 수정 |
(7) 추가 (Addition)
메서드 | 설명 |
plus(long amountToAdd, TemporalUnit unit) | 지정된 시간 단위로 시간을 더함 |
plus(TemporalAmount amountToAdd) | 주어진 시간만큼 더함 |
plusYears(long years) | 연을 더함 |
plusMonths(long months) | 월을 더함 |
plusWeeks(long weeks) | 주를 더함 |
plusDays(long days) | 일수를 더함 |
plusHours(long hours) | 시간을 더함 |
plusMinutes(long minutes) | 분을 더함 |
plusSeconds(long seconds) | 초를 더함 |
plusNanos(long nanos) | 나노초를 더함 |
동일하게 minusXxx()메서드들도 존재함 | 위 기능들을 빼는 메서드 |
(8) 포맷팅 (formatting)
메서드 | 설명 |
format(DateTimeFormatter formatter) | 주어진 포매터를 사용하여 LocalDateTime을 문자열로 변환 |
2) ZonedDateTime의 주요 메서드
- LocalDateTime과 중복되는 내용은 제외
(1) 생성 및 변환
메서드 | 설명 |
now() | 현재 시간대의 현재 날짜와 시간을 가진 ZonedDateTime 객체를 생성 |
now(ZoneId zoned) | 지정된 시간대의 현재 날짜와 시간을 가진 ZonedDateTime 객체를 생성 |
of(LocalDate date, LocalTime time, ZoneId zone) | 주어진 날짜, 시간, 시간대로 ZonedDateTime 객체를 생성 |
of(LocalDateTime dateTime, ZoneId zone) | 주어진 LocalDateTime과 시간대로 zonedDateTime 객체를 생성 |
of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone) |
주어진 날짜, 시간, 나노초, 시간대로 ZonedDateTime 객체를 생성 |
(2) 타임존 관리
메서드 | 설명 |
withZoneSameInstant(ZoneId zone) | 다른 시간대로 시간을 변환하되 절대 시간(UTC)을 유지 |
withZoneSameLocal(ZoneId zone) | 시간대를 변경하되 로컬 날짜와 시간은 그대로 유지 |
withEarlierOffsetAtOverlap() | 겹치는 오프셋(여름 시간제 등)이 있을 때 이전 오프셋을 사용함 |
withLaterOffsetAtOverlap() | 겹치는 오프셋이 있을 때 나중 오프셋을 사용함 |
(3) 조회
메서드 | 설명 |
getOffset() | 현재 ZonedDateTime 오프셋을 반환 |
getZone() | 현재 ZonedDateTime의 시간대를 반환 |
(4) 기타 유용한 메서드
메서드 | 설명 |
toLocalDateTime() | ZonedDateTime을 LocalDateTime으로 변환 |
toInstant() | ZonedDateTime을 Instant로 변환 |
toEpochSecond() | 에포크 타임(유닉스 타임)부터 현재 ZonedDateTime 까지의 초 수를 반환 |
3) Instant의 주요 메서드
- LocalDateTime과 중복되는 내용은 제외함
(1) 생성
메서드 | 설명 |
now() | 현재 UTC 기준의 Instant를 반환 |
ofEpochMilli(long epochMilli) | 주어진 에폭시 시간(밀리초)을 기준으로 Instant를 생성 |
ofEpochSecond(long epochSecond) | 주어진 에폭시 시간(초)을 기준으로 Instant를 생성 |
ofEpochSecond(long epochSecond, long nanoAdjustment) | 주어진 에폭시 시간(초)과 나노초 조정값을 기준으로 Instant를 생성 |
(2) 변환
메서드 | 설명 |
atOffset(ZoneOffset offset) | Instant를 OffsetDateTime으로 변환 |
atZone(ZoneId zone) | Instant를 특정 시간대의 ZonedDateTime으로 변환 |
toEpochMilli() | Instant의 에폭시 시간을 밀리초 단위로 반환 |
(3) 조회
메서드 | 설명 |
getEpochSecond() | 에폭시 시간을 초 단위로 반환 |
getNano() | 현재 초의 나노초 부분을 반환 |