상세 컨텐츠

본문 제목

[Android]시간 포맷 클래스

Android 개발

by mobile 2013. 7. 13. 14:46

본문

반응형

안드로이드에서 사용하는 java.text.DateFormat 클래스는 일자와 시간을 표기하는 포맷 양식뿐만 아니라 보통 문자열을 일자나 시간으로 또는 아래와 같이 일자나 시간을 문자열로 바꾸는 기능을 제공한다.


String myString = DateFormat.getDateInstance().format(myDate);

DateFormat 객체를 생성하는 방법으로 getDateInstance() 메서드 또는 Calendar.get(Calendar.DATE)메서드를 사용하거나 getInstance(Locale locale)메서드를 사용하여 해당 국가에서 사용하는 날짜 형식을 가져 올 수 있다. 그리고 시간의 경우는 getTimeInstance() 메서드를 사용하거나 또는 getDateTimeInstance() 메서드를 사용하여 생성한다.


DateFormat[] formats = new DateFormat[] {

DateFormat.getDateInstance(),

DateFormat.getDateTimeInstance(),

DateFormat.getTimeInstance()

};

for(DateFormat df : formats) {

Log.v("Date", df.format(new Date()));

}


그리고 java.text.DateFormat 클래스에서 제공하는 SHORT, MEDIUM, LONG, FULL 상수를 옵션으로 사용하여 DateFormat의 길이를 제어할 수 있다.

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);


출력되는 결과는 지역(Locale)에 따라 다르지만, 일반적인 사용법은 아래와 같다.

DateFormat df2 = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRANCE);


java.text.DateFormat 클래스는 추상클래스이므로 보통 SimpleDateFormat와 같은 서브 클래스를 사용하여 날짜/시간 형식화(날짜를 문자로 변환), 구문 분석(문자를 날짜로 변환)등의 목적으로 주로 사용한다.


날짜 표현하는데는 DateFormat이 있다. 하지만 내가 원하는 패턴으로 보여주지 않는다. 이 클래스를 사용하면 "2009년 5월 29일 금요일" 또는 "2009. 5. 29", "09. 5. 29"와 같이 보여준다. 내가 원하는 표시형태는 "20090529"인데..

Date now = new Date();

DateFormat format1 = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(format1.format(now));
DateFormat format2 = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println(format2.format(now));
DateFormat format3 = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(format3.format(now));
DateFormat format4 = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(format4.format(now));


결과는 아래처럼..

2009년 5월 29일 금요일
2009년 5월 29일 (금)
2009. 5. 29
09. 5. 29


패턴을 사용하는 방법 중 간단한 방법은 을 사용하는 방법이다. SimpleDateFormat은 DateFormat을 상속받아 사용하기 편하게 이쁘게 되어 있다. 이 클래스를 사용하면 우리가 자주 사용하는 "yyyyMMdd"와 같은 표현을 사용할 수 있다.

Date now = new Date();

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
System.out.println(format.format(now)); // 20090529
format = new SimpleDateFormat("E MMM dd HH:mm:ss", Locale.UK);
System.out.println(format.format(now)); // Fri May 29 11:06:29



LetterDate or Time ComponentPresentationExamples
GEra designatorTextAD
yYearYear1996; 96
MMonth in yearMonthJuly; Jul; 07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay in weekTextTuesday; Tue
aAm/pm markerTextPM
HHour in day (0-23)Number0
kHour in day (1-24)Number24
KHour in am/pm (0-11)Number0
hHour in am/pm (1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral time zonePacific Standard Time; PST; GMT-08:00
ZTime zoneRFC 822 time zone-0800



Date and Time PatternResult
"yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"Wed, Jul 4, '01
"h:mm a"12:08 PM
"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time
"K:mm a, z"0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"2001-07-04T12:08:56.235-0700


반응형

'Android 개발' 카테고리의 다른 글

[Android] 인텐트 - 02  (0) 2013.07.31
[Android] 인텐트  (0) 2013.07.31
[Android]자바 스타일 문자  (0) 2013.04.21
[Android]XML 스타일 문자  (0) 2013.04.21
[Android]상태 리스트 모형  (0) 2013.04.20

관련글 더보기

댓글 영역