Chapter10 기본 API 클래스 알아보기
8. formatting
what?
형식을 지정하는 클래스
why?
형식이 통일되어있어야 보기 편함
how?
↓↓
1)DecimalFormat
what?
숫자를 형식화하는 클래스
how?
기호 | 의미 | 기호 | 의미 |
# | 있으면 출력 | , | 콤마를 넣음 |
0 | 없어도 0으로 채움 | E | 지수 기호 |
. | 소수점 | % | 퍼센트 |
- | 음수 기호를 붙임 |

2)SimpleDateFormat
what?
날짜를 형식화하는 클래스
why?
Date와 Calendar 클래스의 출력 형식 외에 다른 형태로 출력할 수 있다.

9. Object 클래스
what?
모든 클래스의 조상 클래스
how?
클래스에 메서드가 있음
Modifier and Type
- protected Object clone(): 객체의 복사본 반환
- boolean equals(Object obj): obj와 같은 객체인지 아닌지 boolean 값으로 반환
- protected void finalize(): 객체가 소멸할 때 호출
- Class<?> getClass(): 클래스의 정보를 담고 있는 Class 객체 반환
- int hashCode(): 해시코드 반환
- void notify(): 대기 중인 하나의 스레드를 깨움
- void notifyAll(): 대기 중인 모든 스레드 깨움
- String toString(): 객체의 정보를 문자열로 반환
- void wait(): 현재 스레드를 멈추고 대기
- void wait(long timeout): timeout만큼 스레드를 멈추고 대기
- void wait(long timeout, int nanos): 실제로 일어난 시간만큼 스레드를 멈추고 대기
10. java.time 패키지
what?
Date와 Calendar 보완
how?
4개의 하위 패키지를 가짐
날짜나 시간을 변경하면 실제로는 변경하는 것이 아니라 새로운 객체를 반환한다.(싱글턴의 두 가지 종류)
패키지 | 설명 |
java.time | 날짜와 시간을 나타내는 LocalDate, LocalTime 등 포함 |
java.time.format | 날짜와 시간을 파싱하고 포맷팅하는 API 포함 |
java.time.chrono | 여러 달력 시스템을 사용할 수 있는 API 포함 |
java.time.temporal | 날짜와 시간을 연산하기 위한 API 포함 |
java.time.zone | 타임존을 지원하는 API 포함 |
↓↓
1)time 패키지의 시간과 날짜 클래스 종류
①LocalDate 클래스
날짜 정보를 저장
now(): 현재 날짜 지정
of(): 특정 날짜 지정
LocalDate ld = LocalDate.now();
LocalDate mld = LocalDate.of(int year, int month, int dayOfMonth);
now()와 of()는 모두 싱글턴 방식이다. 차이점은 now()는 몇 번을 사용해도 같은 객체를 준다는 것이고 of()는 데이터를 지정해야 하기 때문에 다른 객체를 준다는 것이다.
②LocalTime 클래스
시간 정보 저장
now(): 현재 시간 지정
of(): 특정 시간 지정
LocalTime lt = LocalTime.now();
LocalTme mlt = LocalTime.of(int hour, int minute, int second, int nanoOfSecond);
of 메서드는 오버로딩되어있다.
of(int hour, int minute);
of(int hour, int minute, int second);
of(int hour, int minute, int second, int nanoOfSecond);
③LocalDateTime 클래스
LocalDate+LocalTime
now()
of()
④ZonedDateTime 클래스
시차에 따른 시간대 개념이 추가된 클래스
ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("UTC"));
⑤Instant
특정 시간의 타임스탬프 객체. 1970년 1월 1일부터 현재까지의 시간을 셈. 사람보다는 Machine time에 유리
Instant i1 = Instant.now();
2)클래스들의 정보 값 읽어오기
- 월요일~일요일: 1~7
- 1월 = 1(0 x)
LocalDate
리턴타입 | 메서드 | 설명 |
int | getYear() | 년도 |
Month | getMonth() | Month의 열거값 |
int | getMonthValue() | 월 |
int | getDayOfYear() | 1년의 몇 번째 일 |
int | getDayOfMonth() | 월의 몇 번째 일 |
DayOfWeek | getDayOfWeek() | 요일 |
boolean | isLeapYear() | 윤년 여부 |
LocalTime
리턴타입 | 메서드 | 설명 |
int | getHour() | 시간 |
int | getMinute() | 분 |
int | getSecond() | 초 |
int | getNano() | 나노초 |
3)클래스들의 정보 더하기/빼기


4)클래스들의 정보 값 변경하기
with 메서드 사용

with 메서드에 파라미터값으로 TemporalAdjuster 타입을 넣으면 특정한 날짜를 리턴한다.
메서드 | 설명 |
firstDayOfYear() | 년도의 첫 번째 일 |
lastDayOfYear() | 년도의 마지막 일 |
firstDayOfMonth() | 달의 첫 번째 일 |
lastDayOfMonth() | 달의 마지막 일 |
firstInMonth(DayofWeek dayOfWeek) | 달의 첫 번째 요일 |
lastInMonth(DayOfWeek dayOfWeek) | 달의 마지막 요일 |
next(DayOfWeek dayOfWeek) | 돌아오는 요일 |
nextOrSame(DayOfWeek dayOfWeek) | 오늘을 포함한 돌아오는 요일 |
previous(DayOfWeek DayOfWeek)/previousOrSame | 지난 요일/오늘을 포함한 지난 요일 |

5)클래스들의 정보값 비교
isAfter() | 이후 날짜인지 비교, boolean값 반환 |
isBefore() | 지나간 날짜인지 비교, boolean값 반환 |
isEqual() | 동일 날짜인지 비교, boolean값 반환 |
until() | 날짜나 시간의 차이 반환 |
between() | 전체 날짜나 시간의 차이 반환 |


'정리노트' 카테고리의 다른 글
[java] 컬렉션 프레임워크, 스레드 (0) | 2023.10.31 |
---|---|
[java] 코드 읽기 연습 (0) | 2023.10.30 |
[java] API② (0) | 2023.10.26 |
[java] API (0) | 2023.10.25 |
[java] 내부 클래스, 예외 처리 (0) | 2023.10.24 |