1. 날짜와 시간
Calendar와 GregorianCalendar
- Calendar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다.
Calendar cal = new Calendar();
Calendar cal = Calendar.getInstance();
- Calendar를 상속받아 완전히 구현한 클래스로는 GregorianCalendar와 Buddhistcalendar가 있는데 getInstance()는 시스템의 국가와 지역설정을 확인해서 태국인 경우에는 BuddhistCalendar의 인스턴스를 반환하고, 그 외에는 GregorianCalendar의 인스턴스를 반환한다.
Date와 Calendar간의 변환
Calendar cal = Calendar.getInstance();
...
Date d = new Date(cal.getTimeMillis());
Date d = new Date();
...
Calendar cal = Calendar.getInstance();
cal.setTime(d);
2. 형식화 클래스
- 숫자를 형식화 하는데 사용된다.
- 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현할 수 있으며, 반대로 일정한 형식의 텍스트 데이터를 숫자로 쉽게 변환하는 것도 가능하다.
< 간단한 사용법 >
double number = 1234567.89;
DecimalFormat df = new DecimalFormat("#.#E0");
String result = df.format(number);
< 간단한 사용법 >
Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyy-MM-dd");
String result = df.format(today);
- 특정 범위에 속하는 값을 문자열로 반환해준다.
- 데이터를 정해진 양식에 맞게 출력할 수 있도록 해준다.
3. java.time 패키지
- LocalDate + LocalTime -> LocalDateTime
- LocalDateTime + 시간대 -> zonedDateTime
Period 와 Duration
- 날짜 - 날짜 = period
- 시간 - 시간 = Duration
객체 생성하기 : now(), of()
LocalDate date = LocalDate.now();
LocalDate date = LocalDate.of(2015, 11, 24);
Temporal 과 TemporalAmount
- Temporal, TemporalAccessor, TemporalAdjuster를 구현한 클래스
- LocalDate, LocalTime, LocalDateTime, zonedDateTime, Instant emd
- TemporalAmount 를 구션한 클래스
TemporalUnit 과 TemporalField
- TemporalUnit
- TemporalField
- 년, 월, 일 등 날짜와 시간의 필드를 정의해 놓은 인터페이스
Instant
- 에포크 타임(EPOCH TIME, 1970-10-01 00:00:00 UTC)부터 경과된 시간을 나노초 단위로 표현한다.
- 자주 쓰이는 다양한 형식들을 기본적으로 정의하고 있으며, 그 외의 형식이 필요하다면 직접 정의해서 사용할 수도 있다.