Java8에 도입된 ZonedDateTime 클래스를 사용하여 날짜를 잘라내는 것이 CommonsLang의 DateUtils 클래스보다 훨씬 빠릅니다.
참고: 이 규칙은 프로젝트의 sonar.java.source의 값이 8보다 낮은 경우(java8) 검사하지 않습니다.
규칙을 어긴 코드
public Date trunc(Date date) {
return DateUtils.truncate(date, Calendar.SECOND); // 규칙을 어긴 코드
}
규칙을 준수한 해결책
public Date trunc(Date date) {
Instant instant = date.toInstant();
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
ZonedDateTime truncatedZonedDateTime = zonedDateTime.truncatedTo(ChronoUnit.SECONDS);
Instant truncatedInstant = truncatedZonedDateTime.toInstant();
return Date.from(truncatedInstant);
}
If you like SONARKUBE, don’t forget to give me a star.