program_language 및 궁금한것/Java

[Java] DateTime Millisecond 반올림하기

jinsiri 2023. 2. 8. 20:02

안녕하세요.

최근 DateTimeFormat을 사용할때 millisecond가 절삭이 되어서 관련 해결책을 찾으려 찾아보았지만 찾지 못했습니다.

ms를 반올림 하는 설정 자체가 없어요.

그래서 조건문으로 코드를 추가하였습니다.

 

손쉽게 해결.

String result = null;
String dateCode = "2023-02-01 17:18:04.583";
DateTime dt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS").parseDateTime(dateCode);

// 밀리세컨즈가 500이상일때 1초 더해준다. 왜냐하면 아래 코드에서 날짜 변환을 할때 밀리세컨초를 반올림 하는 것이 아니라 절삭해버림
int ms = dt.getMillisOfSecond();
if(ms > 499){
    dt = dt.plusSeconds(1);
}

result = DateTimeFormat.forPattern("yyyy-MM-dd a h:mm:ss").withLocale(new Locale("ko")).print(dt);
System.out.println(result);

 

오늘의 교훈: 공식문서에 없으면 구글링보단 노가다를 하자. 생각보다 간단할 수도 있다?

반응형