728x90
반응형
원하는 기간의 Random LocalDate 생성
/**
* getRandomDate
*
* @param String(yyyyMMdd)
* @param String(yyyyMMdd)
* @return LocalDate(yyyy-MM-dd)
*/
public LocalDate getRandomDate(String startDate, String endDate) {
LocalDate fromDate = LocalDate.of(
Integer.parseInt(startDate.substring(0, 4)),
Integer.parseInt(startDate.substring(4, 6)),
Integer.parseInt(startDate.substring(6, 8)));
LocalDate toDate = LocalDate.of(
Integer.parseInt(endDate.substring(0, 4)),
Integer.parseInt(endDate.substring(4, 6)),
Integer.parseInt(endDate.substring(6, 8)));
LocalDate randomDate = fromDate.plusDays(ThreadLocalRandom.current().nextLong(fromDate.until(toDate, ChronoUnit.DAYS) + 1));
return randomDate;
}
*개선한 버전
/**
* getRandomDate
*
* @param String(yyyyMMdd)
* @param String(yyyyMMdd)
* @return LocalDate(yyyy-MM-dd)
*/
public LocalDate getRandomDate(String startDate, String endDate) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate fromDate = LocalDate.parse(startDate, formatter);
LocalDate toDate = LocalDate.parse(endDate, formatter);
long daysBetween = fromDate.until(toDate, ChronoUnit.DAYS) + 1;
LocalDate randomDate = fromDate.plusDays(ThreadLocalRandom.current().nextLong(daysBetween));
return randomDate;
}
728x90
728x90
'▶ Back-End > Java' 카테고리의 다른 글
String to LocalDate (0) | 2023.09.21 |
---|---|
Ramdom LocalTime 생성 (0) | 2023.09.21 |
SpringBoot + Cassandra 연동(Multi Node) (0) | 2023.08.18 |
SpringBoot + Cassandra 연동(Single Node) (0) | 2023.08.09 |
Cassandra 설치 방법과 간단한 Node 분산 Test (0) | 2023.08.08 |
댓글