일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- 백준 18877번
- vue.js
- 18877번
- 백준 BOJ
- 텐서플로맛
- java
- CCPC
- 백준
- BOJ 18881
- social distancing
- Social Distancing II
- 일해라 개발자
- BOJ Social Distancing II
- await
- 모바일 버전만들기
- spring boot
- 베리어블 폰트
- BOJ 18877
- 18881번
- VUE
- async
- CSS
- 백준 Social Distancing II
- 18877번 Social Distancing
- Spring Security
- BOJ Social Distancing
- 반응형 웹
- Catholic univ Computer Programming Contest
- BOJ
- Today
- Total
나아가는 길에 발자국을 찍어보자
[Java] 날짜 타입 클래스(LocalDate, LocalTime, LocalDateTime) 본문
[Java] 날짜 타입 클래스(LocalDate, LocalTime, LocalDateTime)
NAWIN 2020. 9. 23. 14:14이번에 개발을 진행하면서 중간에 생각보다 오래 시간이 걸린 부분이 날짜 타입을 받고 가공하는 부분이었다.
진행하면서 알게된거지만 전에는 DTO에서 그냥 String 형식으로 데이터를 전달받아 DB에 저장할 때,
JSON포맷을 사용했었는데, 이번에는 이렇게 하지않고 날짜타입을 계속 유지하는것이 더 좋다기도 하고 맞는 것 같아서 날짜 타입으로 개발을 진행하였다. 매번 현재 시각을 바로 저장하기만했지 이미 저장된 날짜데이터를 내가 원하는 방식으로 가공해서 저장하려니 개념이 부족한것이 티가 났다.
오늘까지 해야할 업무가 마무리되서 시간이 생겼기 때문에 정리해 본다!
[ 날짜, 시간 클래스 ]
1. LocalDate 클래스
- 컴퓨터의 현재 날짜 정보
- 결과 : 2020-09-23
- 사용 방법
LocalDate currentDate = LocalDate.now();
LocalDate myDate = LocalDate.of(int year, int month, int datOfMonth); //년,월,일
- 추가 메소드
getYear();
getMonth(); (Month 열거값나옴 JANUARY, FEBRUARY)
getMonthValue(); 월(1,2,3,...)
getDayOfYear(); 년의 몇 번째 일
getDayOfMonth(); 월의 몇번째 일
getDateOfWeek();요일(MONDAY, TUESDAY,...)
isLeapYear(); 윤년여부
2. LocalTime 클래스
- 컴퓨터 현재 시간 정보
- 결과 : 18:25:02.489
- 사용 방법
LocalTime currentTime = LocalTime.now();
LocalTime targetTime = LocalTime.of(int hour, int minute, int second, int nanoOfSecond);
- 추가 메소드
int getHour() 시간
int getMinute() 분
int getSecond() 초
int getNano() 나노초
3. LocalDateTime 클래스
- 컴퓨터 현재 날짜와 시간 정보(시간, 날짜 정보가 동시에 필요할때 사용.)
- 결과 : 2020-09-23T18:34:24.458
- 사용 방법
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime targetDateTime = LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond);
ZonedDateTime utcDateTime = ZonedDateTime.now(ZoneId.of("UTC"));
ZonedDateTime seoulDateTime = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));
4. 날짜 / 시간 변환
1) LocalDate -> String
LocalDate.of(2020, 12, 12).format(DateTimeFormatter.BASIC_ISO_DATE); // 20201212
2) LocalDateTime -> String
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 2020-09-23 01:42:24
3) LocalDateTime -> java.util.Date
Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()); //Thu Jul 26 01:00:30 KST 2020
4) LocalDate -> java.sql.Date
Date.valueOf(LocalDate.of(2015, 5, 5)); // 2020-07-26
5) LocalDateTime -> java.sql.Timestamp
Timestamp.valueOf(LocalDateTime.now()); // 2018-07-26 01:06:55.323
6) String -> LocalDate
LocalDate.parse("2002-05-09"); // 2002-05-09
LocalDate.parse("20081004", DateTimeFormatter.BASIC_ISO_DATE); // 2008-10-04
7) String -> LocalDateTime
LocalDateTime.parse("2007-12-03T10:15:30"); // 2007-12-03T10:15:30
LocalDateTime.parse("2010-11-25 12:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 2010-11-25T12:30
8) java.util.Date -> LocalDateTime
LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()); // 2018-07-26T01:16:46.755
9) java.sql.Date -> LocalDate
new Date(System.currentTimeMillis()).toLocalDate(); // 2018-07-26
10) java.sql.Timestamp -> LocalDateTime
new Timestamp(System.currentTimeMillis()).toLocalDateTime(); // 2018-07-26T01:20:07.364
11) LocalDateTime ->LocalDate
LocalDate.from(LocalDateTime.now()); // 2018-07-26
12) LocalDate -> LocalDateTime
LocalDate.now().atTime(2, 30); // 2018-07-26T02:30
<참고 블로그>
https://jeong-pro.tistory.com/163
(정아마추어님은 대단하시다....내가 부족한부분을 찾아서 공부하려면 이미 너무 잘정리를 해놓으셨어...)
<추가>
- javascript Date() 관련 메소드
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date
'Spring && Spring boot' 카테고리의 다른 글
[ Spring Security ] 비밀번호 암호화 PasswordEncoder (1) | 2020.11.18 |
---|---|
[Spring boot] 날짜 타입 JSON 변환 (0) | 2020.09.23 |
expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:{} 에러 (0) | 2020.08.21 |
expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 에러 (0) | 2020.08.21 |
Lombok 라이브러리 (0) | 2020.07.27 |