====== Java DateFormat ====== * [[java:8:datetime|Java 8 Date & Time]] ===== SimpleDateFormat ===== * ''SimpleDateFormat''은 Thread Safe 하지 **않으므로** 요청마다 매번 새로운 객체를 생성해서 써야한다. * commons-lang 의 ''FastDateFormat''은 Thread Safe하다. * [[https://www.javacodegeeks.com/2010/07/java-best-practices-dateformat-in.html|Java Best Practices – DateFormat in a Multithreading Environment]] : ''SimpleDateFormat''을 ThreadLocal을 이용해서 사용하는 방법 ===== Java 8 DateTimeFormatter ===== * [[https://www.baeldung.com/java-datetimeformatter|Guide to DateTimeFormatter | Baeldung]] ==== locale 명시 ==== * 시스템 Locale 을 따르지 않고 로케일을 명시하고자 한다면, DateTimeFormatter.ofPattern("포맷 문자열").withLocale(Locale.KOREA); ==== 요일 포맷 ==== * ''eee'' 혹은 ''ccc'' : 지정된 로케일의 요일 출력. 한국은 "월", "화", ... * ''e'' 혹은 ''c'' : 요일 숫자값 출력 * 날짜 객체의 ''displayName'' 출력 import java.time.*; import java.time.format.*; import java.util.*; Month.FEBRUARY.getDisplayName(TextStyle.FULL, Locale.KOREAN); // 2월 Month.FEBRUARY.getDisplayName(TextStyle.NARROW, Locale.KOREAN); // 2월 Month.FEBRUARY.getDisplayName(TextStyle.SHORT, Locale.KOREAN); // 2월 DayOfWeek.SUNDAY.getDisplayName(TextStyle.FULL, Locale.KOREAN); // 일요일 DayOfWeek.SUNDAY.getDisplayName(TextStyle.SHORT, Locale.KOREAN); // 일 DayOfWeek.SUNDAY.getDisplayName(TextStyle.NARROW, Locale.KOREAN); // 일