티스토리 뷰
대표적인 클래스
이름 | 설명 |
---|---|
LocalDate | 날짜만을 표현하는 클래스(년, 월, 일 등) 시간 제외. |
LocalTime | 시간만을 표현하는 클래스(시, 분, 초 등) 날짜 제외. |
LocalDateTime | 날짜와 시간을 모두 표현하는 클래스 |
ZonedDateTime | 타임존이 지정된 날짜와 시간을 표현하는 클래스. |
날짜 및 시간 객체 생성
java.time에서 제공하는 클래스는 모두 팩토리메서드 방식으로 객체를 생성하며, 그 방법이 동일하다.
// 현재 날짜 및 시간 객체 생성
LocalDate today = LocalDate.now();
LocalDateTime now = LocalDateTime.now();
LocalTime currentTime = LocalTime.now();
// 특정 날짜 및 시간 갱체 생성
LocalDate yesterday = LocalDate.of(2016, 2, 9); // 2016/02/09
LocalTime thatTime = LocalTime.of(18, 30, 34); // 18:30:34
LocalDateTime theDay = LocalDateTime.of(yesterday, thatTime); // 날짜와 시간으로 생성
LocalDateTime superDay = LocalDateTime.of(2016, 2, 5, 15, 0, 0); // 2016/02/05 15:00:00
// 날짜 및 시간을 파싱해서 생성
LocalDate thatDay = LocalDate.parse("2016-01-04");
LocalTime goHomeTime = LocalTime.parse("18:30:00");
LocalDateTime dayAndTime = LocalDateTime.parse("2016-01-04T18:30:00"); // 날짜와 시간을 T로 구분
// 기존 객체를 재활용하여 새로운 객체 생성
LocalDate localDate = today.withDayOfMonth(5);
데이터 얻기
LocalDateTime now = LocalDateTime.parse("2016-01-31T12:30:58");
assertEquals(2016, now.getYear());
assertEquals(1, now.getMonthValue());
assertEquals(31, now.getDayOfMonth());
assertEquals(12, now.getHour());
assertEquals(30, now.getMinute());
assertEquals(58, now.getSecond());
포맷
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd hh:mm:ss");
LocalDateTime localDateTime = LocalDateTime.of(2016, 1, 1, 7, 30, 24);
assertEquals("2016/01/01 07:30:24", formatter.format(localDateTime));
연산
LocalDateTime theDay = LocalDateTime.parse("2016-01-31T12:30:58");
assertEquals(58, theDay.getSecond());
// 10초 후 얻기
LocalDateTime after10Seconds = theDay.plusSeconds(10);
assertEquals(8, after10Seconds.getSecond());
// 10일 후 얻기
LocalDateTime after10Days = theDay.plusDays(10);
assertEquals(2, after10Days.getMonthValue());
assertEquals(10, after10Days.getDayOfMonth());
// 10년 전 얻기
LocalDateTime before10Years = theDay.minusYears(10);
assertEquals(2006, before10Years.getYear());
특정 주기 지정
// 5년, 2달, 10일
Period period = Period.of(5, 2, 10);
LocalDate theDate = LocalDate.of(2016, 10, 20);
LocalDate afterDate = theDate.plus(period);
assertEquals(2021, afterDate.getYear());
assertEquals(12, afterDate.getMonthValue());
assertEquals(30, afterDate.getDayOfMonth());
날짜 간격, 기간
LocalDateTime today = LocalDateTime.now();
LocalDateTime yesterday = today.minusDays(1);
Duration durationOfDays = Duration.between(yesterday, today);
assertEquals(24, durationOfDays.toHours());
JDBC를 위한 SQL 관계
클래스 | SQL 자료형 |
---|---|
LocalDate | DATE |
LocalTime | TIME |
LocalDateTime | TIMESTAMP |
OffsetTime | TIME WITH TIMEZONE |
OffsetDateTime | TIMESTAMP WITH TIMEZONE |
안타깝게도 아직 Java8에서는 새로운 날짜 및 시간 관련 API를 위해 JDBC의 날짜관련 클래스들을 직접 사용할 순 없다. 대신 java.sql 패키지의 날짜 및 시간 관련 클래스들에 java.time패키지에 대응하는 메소드가 추가되었다.
LocalDate today = LocalDate.now();
Date date = Date.valueOf(today);
LocalDate localDate = date.toLocalDate();
LocalTime currentTime = LocalTime.now();
Time time = Time.valueOf(currentTime);
LocalTime localTime = time.toLocalTime();
LocalDateTime now = LocalDateTime.now();
Timestamp timestamp = Timestamp.valueOf(now);
LocalDateTime localDateTime = timestamp.toLocalDateTime();
Instant instant = Instant.now();
Timestamp timestampFromInstant = Timestamp.from(instant);
Instant intantFromTimestamp = timestampFromInstant.toInstant();
'BackEnd > Java' 카테고리의 다른 글
IO vs NIO performance compare (성능 비교) (0) | 2017.05.11 |
---|---|
[Java] NIO 기반 입출력 및 네트워킹 - NIO, 파일 & 디렉토리 (0) | 2017.05.11 |
자바 NIO Channel을 이용한 처리 - StackOverFlow (0) | 2017.05.11 |
[JAVA] String format 사용법 - Blog Goooood.net (0) | 2017.05.09 |
[NIO]파일시스템 재귀호출형 탐색 walkFileTree (0) | 2017.04.26 |
댓글
공지사항
최근에 올라온 글
링크
TAG
- API
- AI
- executor
- 모두의딥러닝
- TDD
- python
- memory
- spark
- tensorflow
- mybatis
- 중앙정보처리학원
- Error
- ML
- mysql
- 머신러닝
- web
- javascript
- BigData
- Maven
- 파이썬
- 텐서플로우
- NIO
- 점프투파이썬
- Gradle
- spring
- Configuration
- Java
- serverless
- Docker
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함