월루를 꿈꾸는 대학생

CH10 날짜와 시간 & 형식화 본문

Programing/Java

CH10 날짜와 시간 & 형식화

하즈시 2021. 5. 16. 20:17
728x90

1. 날짜와 시간 

 

1.1 Calendar 와 Date

 

Date

- 날짜와 시간을 다룰 목적으로 제공 

 

Calendar 

- 추상 클래스이기 때문에 직접 객체할 수 없고 메서드를 통해서 구현가능 

 

Date와 Calnedar 간의 변화 

1, Calendar를 Date로 변환 

Calendar cal = Calendar.getInstance();

Date d = new Date(cal.getTimeInMillis());

2. Date 를 Calendar 로 변환
Date d = new Date();

Calendar cal = Calendar.getInstance();
cal.setTime(d);

 

주의점 : get(Calendar.MONTH) 얻어올 때 0 ~ 11 범위로 지정해야함 

0이면 1월 11이면 12월 

 

add() -> 지정한 필드값을 원하는 만큼 증가 감소 

roll() -> 지정한 필드 값을 증가 똔느 감소 가능한데 다른 필드에 영향을 미치지는 않음 

 

 

2. 형식화 클래스

 

2.1 DecimalFormat 

- 숫자를 형식화 하는데 사용 

- 숫자를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현 

 

 

2.2 SimpleDateFormat 

- 숫자 데이터 형식을 출력하기 위해 사용 

 

Date today = new Date();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

 

String result = df.format(today);

-> 오늘 날짜를 yyyy-MM-dd 형태로 변환 

 

 

2.3 ChoiceFormat

- 특정 범위에 속하는 값을 문자열로 변환 

 

2.4 MessageFormat 

- 데이터를 정해진 양식에 맞춰 출력할 수 있음 

- 안내문의 경우 보통 정해진 내용은 같고 이름만 다르기에 message 형식을 쓰면 손쉽게 출력가능

 

 

3. java,time 패키지 

 

패키지설명

java.time 날짜와 시간을 다루는데 필요한 핵심 클래스들을 제공
java.time.chrono 표준(ISO)이 아닌 달력 시스템을 위한 클래스들을 제공
java.time.format 날짜와 시간을 파싱하고, 형식화하기 위한 클래스들을 제공
java.time.temporal 날짜와 시간의 필드(field)와 단위(unit)을 위한 클래스들을 제공
java.time.zone 시간대(time-zone)와 관련된 클래스들을 제공

https://gptjs409.github.io/java/2019/09/14/time-1.html

 

 

3.1 java.time 패키지 

 

LocalDateIme -> 날짜와 시간이 모두 필요할 때 사용

 

of () -> 안에 인수를 넣어서 인스턴스 생성

now() -> 오늘날짜의  인스턴스 생성 

 

 

3.3 Instant 

- 에포크타임 즉 utc부터 경과된 시간을 나노초 단위로 표현

- 사람에게 불편

 

3.5 temporalAdjuster

-자주 쓰일만한 날짜들을 대신 계산해주는 메서드

 

 

firstDayOfNextYear() 다음 해의 첫 날
firstDayOfNextMonth() 다음 달의 첫 날
firstDayOfYear() 올 해의 첫 날
firstDayOfMonth() 이번 달의 첫 날
lastDayOfYear() 올 해의 마지막 날
lastDayOfMonth() 이번 달의 마지막 날
firstInMonth(DayOfWeek dayOfWeek) 이번 달의 첫 번째 요일
lastInMonth(DayOfWeek dayOfWeek) 이번 달의 마지막 요일
previous(DayOfWeek dayOfWeek) 지난 요일(당일 미포함)
previousOrSame(DayOfWeek dayOfWeek) 지난 요일(당일 포함)
next(DayOfWeek dayOfWeek) 다음 요일(당일 미포함)
nextOrSame(DayOfWeek dayOfWeek) 다음 요일(당일 포함)
dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek) 이번 달의 n번째 요일

https://lovefields.github.io/java/2017/06/12/post73.html

 

 

3.6 Period와 Duration 

 

Period = 날짜 - 날짜

Duraiton = 시간 - 시간 

 

between()

- 두 날짜의 차이를 리턴 

 

 

728x90

'Programing > Java' 카테고리의 다른 글

[Java] 자바 무슨 일이 일어나고 있는가?  (0) 2023.08.05
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가  (0) 2022.09.13
ch9 java api  (0) 2021.05.09
ch 8 알고리즘  (0) 2021.04.18
CH8 예외처리  (0) 2021.04.18