반응형
API를 만들면서 날짜 데이터를 요리해야 하는 일이 생겼다.
현재로부터 몇개월 전에 생성되었고, 생성 된 날짜로부터 얼마까지의 기간동안 랜덤으로 날짜를 생성…
평소 날짜 관련하여 다루지 않아 잘 알지 못해 가장 기본이라고 생각했던 Calendar와 Date 클래스를 이용해 만들고 있던중에
좋은 글을 읽게 되었다.
"아직도 Calendar, Date 사용하니?”라는 타이틀이 강력하게 다가왔다..ㅎ..
자바에서 Calendar와 Date는 처음 공부할 때나 단순하게 표현해야할 때 사용할 수 있지만
단점이 극명한 클래스라 사용하지 않는게 좋다고 한다.
* 직접 사용 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //1. 현재 날짜 LocalDate now = LocalDate.now(); //2. 등록 날짜 //LocalDate.of() : 날짜 셋팅 LocalDate join = LocalDate.of(Integer.parseInt(joinDate.substring(0, 4)), Integer.parseInt(joinDate.substring(4, 6)), Integer.parseInt(joinDate.substring(6))); //3. 현재 날짜 - 등록 날짜 = 개월 long month = join.until(now, ChronoUnit.MONTHS); //4. 현재 날짜 - 4개월 전 날짜 LocalDate ago = now.minusMonths(4); //5. 4번 날짜 ~ 등록 날짜 사이의 랜덤 날짜 //toEpochDay() : 기준 시로부터의 일 수(타임 스탬프와 비슷한 개념) long iRand = random.nextInt(toIntExact(ago.toEpochDay()) - toIntExact(join.toEpochDay()) + 1) + toIntExact(join.toEpochDay()); //랜덤 일수(iRand)를 날짜로 변환 LocalDate randDate = LocalDate.ofEpochDay(iRand); //출력을 원하는 포멧으로 변환 randDate.format(DateTimeFormatter.ofPattern("yyyyMM")); | cs |
* 참고
728x90
반응형
'JavaScript, jQuery, Java' 카테고리의 다른 글
[jQuery] Element(요소) 클래스 값 가져오기 (0) | 2019.10.23 |
---|---|
[JavaScript] 배열 자르기 (Array 중간 값 삭제) (0) | 2019.10.16 |
sql 쿼리 결과 개수 구하기 (0) | 2018.12.28 |
[JavaScript] Object 객체 추가/삭제 (0) | 2018.12.17 |
동적 엘리먼트 생성 시 함수 인자 따옴표 (따옴표 안에 따옴표 안에 따옴표) (0) | 2018.12.17 |
댓글