달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
출처 : http://gubok.tistory.com/124


날짜를 나타낼때 변수로 받은 타입이 스트링일 경우가 많다. 이경우 DateFormat을 이용하여 Date 타입으로 컨버팅 하는데 자주 사용하다 보니 유틸리티로 만들어서 사용하곤 한다. 
그러다 보니 그 포맷 형태를 까먹을 때가 많다. 굳이 다 기억하고 싶지는 않지만 그래도 정리하고자 한다.

가장 일반적으로 사용하는 클래스는 java.text.SimpleDateFormat 클래스를 사용하는데, 성능면에서 많이 떨어진다고 한다.(얼마나 떨어지는지는 비교수치를 찾을 수가 없다. 시간 되면 테스트 한번 해보자). 그래서 사용하는 것이 apache.commons 에 있는 FastDateFormat 클래스이다. 
SimpleDateFormat이든 FastDateFormat이든 변수로 사용되는 format 형식은 동일하다.

Letter Date / Time Component Examples
G Era designator AD
y Year 1996; 96
M Month in year July; Jul; 07
w Week in year 27
W Week in month 2
D Day in year 189
d Day in month 10
F Day of week in month 2
E Day in week Tuesday; Tue
a Am/pm marker PM
H Hour in day (0-23) 0
k Hour in day (1-24) 24
K Hour in am/pm (0-11) 0
h Hour in am/pm (1-12) 12
m Minute in hour 30
s Second in minute 55
S Millisecond 978
z Time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone -0800

1. String을 Date 타입으로 변환시 예제
String stringDate = "2009/02/19";
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date newDate = dateFormat.parse(stringDate);

apache.commons의 FastDateFormat 클래스는 다음처럼 사용한다.
FastDateFormat fastdateformat = FastDateFormat.getInstance(format, locale);
locale은 request로 부터 받아도 되고 또는 Default로 new Locale("ko_KR")처럼 지정할수도 있다.

2. 역으로 Date타입을 String타입으로 변환시 예제
String newStringDate = dateFormat.format(newDate)

상황에 따라서 newDate.toString()을 쓰기도 하지만 엉뚱한 값이 나올수도 있으니 유의.

다음엔 Locale에 들어가는 값에 대해 알아보고 정리해 보기로 해야겠다.
:
Posted by 라면스프