본문 바로가기
Java & Kotlin

[Joda-time] 월, 일, 요일, 오전/오후 표현하기

by 향로 (기억보단 기록을) 2016. 7. 26.
반응형

Java는 1.7까지 Date가 구리기로 소문났다. (참고)

1.8부터는 많이 개선되었지만.... 회사에서 개발을 하다보면 1.8에서 개발할수있는 경우가 별로없다.

대부분 1.6 ~ 1.7 일경우가 많은데 (리팩토링은 먹는건가요? ㅠㅠ)

그렇다보니 1.8의 개선된 Date나 람다, 스트림은 회사에선 꿈도 못꾸고 최대한 그에 준하는 서드파티 라이브러리들을 사용하면서 만족해야한다. 

이번에 소개할 내용은 Java의 구리고도 구린 Date를 해결하기 위해 나온 Joda Time이다.

Joda Time의 상세한 설명은 위 네이버 블로그를 통해 보면 될것 같고, 여기선 생각보다 많이 쓰이는 특정일자의 월,일,요일,오전/오후를 Joda time으로 출력하는 코드를 작성하겠다.

(작성하고보니 짧.......다 ㅠ)




Joda time을 원하는 포맷으로 사용하기 위해서는 DateTimeFormat을 사용하면 된다.

forPattern()으로 원하는 포맷을 지정하고, 이후 메소드(parseDateTime(), print() 등등..)로 원하는 행위를 지정하면 된다. 


18 line : yyyy-MM-dd HH:mm:ss의 형태의 포맷을 사용하겠다고 지정후 "2016-07-26 13:50:00" 문자열을 parse하여 Datetime 타입의 데이터로 리턴

19 line : aa 형태의 포맷 (aa는 오전/오후의 포맷을 나타낸다)을 사용하되 언어를 한국(ko)으로 지정하고, 18 line의 결과값을 출력한다.

마찬가지로 26 ~ 27 line도 동일한 형태를 취한다. 


날짜 포맷의 경우 각 문자별로 나타내는바가 있어 아래 표를 따라 본인이 원하는 포맷을 작성하면 된다.

아래 symbol외에 다른 문자들은 문자 그대로 인식한다 


(예제 코드에서는 E와 a를 사용하였다.)


SimpleDateFormat + Date 조합으로도 해당 기능은 충분히 구현할 수 있지만, 날짜연산이나 특정시간 추출등 여러면에서 Joda Time의 장점이 많기 때문에 웬만하면 Joda Time을 사용하는것이 좋다. 우리같은 경우 Domain 객체의 날짜 타입도 Joda Time을 사용하고 있을정도이니 아직까지 java.util.Date를 사용하고 있다면 한번 Joda Time을 사용해보시라

반응형