월루를 꿈꾸는 대학생
CH10 날짜와 시간 & 형식화 본문
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()
- 두 날짜의 차이를 리턴
'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 |