정리노트

[java] API③

망고고래 2023. 10. 27. 15:42

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