1. 날짜와 시간 & 형식화
1.1. Calendar와 Date
- java.util.Date
- 날짜와 시간을 다룰 목적으로 만들어진 클래스
- Date의 메서드는 거의 deprecated되었지만 여전히 쓰이고 있다.
- java.util.Calendar
- Date클래스를 개선한 새로운 클래스
- 여전히 단점이 존재
- java.time패키지
- Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공
1.2. Calendar
- java.util.Calendar
- 추상 클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 한다.
- Date와 Calendar간의 변환
1.3. Calendar의 주요 메서드 - get()
- get()으로 날짜와 시간 필드 가져오기 : int get(int filed)
- Calendar에 정의된 필드
1.4. Calendar의 주요 메서드 - set()
- set()으로 날짜와 시간지정하기
- 날짜 지정하는 방법. 월이 0부터 시작한다는 점에 주의
- 시간을 지정하는 방법
1.5. Calendar의 주요 메서드 - clear()
- clear()와 clear(int field)로 Calendar객체 초기화 하기
- clear()는 Calendar객체의 모든 필드를 초기화
- clear(int field)는 Calendar객체의 특정 필드를 초기화
2.1. DecimalFormat - 숫자의 형식화
- 숫자를 다양한 형식으로 출력할 수 있게 해준다.
- 특정 형식으로 되어 있는 문자열에서 숫자를 뽑아낼 수 도 있다.
2.2. SimpleDateFormat - 날짜의 형식화
- 날짜와 시간을 다양한 형식으로 출력할 수 있게 해준다.
- 특정 형식으로 되어 있는 문자열에서 날짜와 시간을 뽑아낼 수도 있다.
2.3. ChoiceFormat - 범위의 형식화
- ChoiceFormat은 특정 범위에 속하는 값을 문자열로 반환해준다.
- if문이나 switch문으로 처리하기 복잡한 경우에 유용하다.
- 패턴 구분자 '#'는 경계값을 포함하고 '<'는 포함하지 않는다.
2.4. MessageFormat - 텍스트의 형식화
- 데이터를 정해진 양식에 맞춰 출력할 수 있도록 도와준다.
- 특정 형식을 가진 문자열에서 데이터를 뽑아낼 때 유용하다.
3.1. java.time패키지
- Date, Calendar의 단점을 보완하기 위해 추가된 패키지
- 이 패키지에 속한 클래스들은 모두 불변이다.
3.2. java.time 패키지의 핵심 클래스
- 날짜를 표현할 때는 LocalDatem 시간을 표현할 때는 LocalTime을 사용
- 날짜와 시간을 같이 표현할 때는 LocalDateTime을 사용
- 시간대까지 다뤄야 할 때는 ZonedDateTime을 사용
- Period는 날짜간의 차이를 Duration은 시간의 차이를 표현할 때 사용
3.2. java.time 패키지의 핵심 클래스
- Temporal : 날짜와 시간을 표현하는 클래스들이 구현
- TemporalAmount : 날짜와 시간의 차이를 표현하는 클래스가 구현
- Temporal로 시작하는 인터페이스들은 매개변수 타입으로 많이 사용되며, TermporalAmount인지 아닌지만
구별하면 된다.
3.2. java.time패키지의 핵심 클래스
- TemporalInit : 날짜와 시간의 단위를 정의해 놓은 인터페이스
- TemporalField : 년,월,일 등 날짜와 시간의 필드를 정의해 놓음
3.3. LocalDate와 LocalTime
- java.time패키지의 핵샘. 이 두 클래스를 잘 이해하면 나머지는 쉬움
- now()는 현재 날짜 시간을 of()는 특정 날짜 시간을 지정할 때 사용
- 일 단위나 초 단위로도 지정가능(1일은 24*60*60=86400초)
- parse()로 문자열을 LocalDate나 LocalTime으로 변환할 수 있다.
3.3. LocalDate와 LocalTime - 필드값 가져오기
- LocalDate와 LocalTime에서 특정 필드의 값 가져오는 메서드
3.3. LocalDate와 LocalTime - 필드값 가져오기
- LocalDate와 LocalTime에서 특정 필드 값 가져오기 : get(), getLong()
- get(), getLong()에 사용할 수 있는 필드의 목록(*는 getLong()사용)
3.3. LocalDate와 LocalTime - 필드값 변경하기
- with(), plus(), minus()로 특정 필드의 값을 변경(새로운 객체가 반환됨)
3.3. LocalDate와 LocalTime - 날짜와 시간의 비교
3.4. Instant - java.util.Date를 대체
3.5. LocalDateTime과 ZonedDateTime
3.5. LocalDateTime과 ZonedDateTime
3.6. ZonedDateTime의 변환
3.7. ZoneOffset과 OffsetDateTime
3.8. TemporalAdiusters
3.9. Period와 Duration
3.10. 날짜와 시산의 형식화(formatting)
- java.time.format패키지 : 형식화와 관련된 클래스를 제공
- DateTimeFormatter의 format()를 사용해서 날짜와 시간을 형식화
3.11. 로케일에 종속된 형식화
3.12. 출력형식 직접 정의하기
3.13. 문자열을 날짜와 시간으로 파싱하기
'프로그램 이론 > JAVA' 카테고리의 다른 글
[JAVA]지네릭스, 열거형, 애너테이션 (0) | 2018.05.28 |
---|---|
[JAVA]컬렉션 프레임웍(collections framework) (0) | 2018.05.28 |
[JAVA]lang패키지 (0) | 2018.05.24 |
[JAVA]예외처리 (0) | 2018.05.24 |
[JAVA]객체지향언어의 개넘 - 2 (0) | 2018.05.23 |