2015년 10월 18일 일요일

안드로이드에서 현재 시간을 24시간제로 표시법(각종 시간 표시법)





현재 시간을 24시간제로 표시하고자 한다면 android.text.format.DateFormat라는 클래스를 이요하면 된다.
이 클래스가 제공하는 메소드 중에서 다음 메소드가 이 기능을 제공한다.

public static CharSequence format (CharSequence inFormat, long  inTimeInMillis)

첫 번째 매개인자 inFormat에 사용되는 형식은 아래 표의 규칙대로 하면된다
(http://developer.android.com/reference/java/text/SimpleDateFormat.html 참조)

SymbolMeaningKindExample
Dday in year(Number)189
Eday of week(Text)E/EE/EEE:Tue, EEEE:Tuesday, EEEEE:T
Fday of week in month(Number)(2nd Wed in July)
Gera designator(Text)AD
Hhour in day (0-23)(Number)0
Khour in am/pm (0-11)(Number)0
Lstand-alone month(Text)L:1 LL:01 LLL:Jan LLLL:January LLLLL:J
Mmonth in year(Text)M:1 MM:01 MMM:Jan MMMM:January MMMMM:J
Sfractional seconds(Number)978
Wweek in month(Number)2
Ztime zone (RFC 822)(Time Zone)Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00 ZZZZZ:-08:00
aam/pm marker(Text)PM
cstand-alone day of week(Text)c/cc/ccc:Tue, cccc:Tuesday, ccccc:T
dday in month(Number)10
hhour in am/pm (1-12)(Number)12
khour in day (1-24)(Number)24
mminute in hour(Number)30
ssecond in minute(Number)55
wweek in year(Number)27
yyear(Number)yy:10 y/yyy/yyyy:2010
ztime zone(Time Zone)z/zz/zzz:PST zzzz:Pacific Standard Time
'escape for text(Delimiter)'Date=':Date=
''single quote(Literal)'o''clock':o'clock
예를들면

MM : 11, 10과 같이 월 표시를 두 자리 숫자로 표현
MMM : Nov, Oct...와 같이 월 표시를 영문 약어로. 
          한글 폰에서는 그냥 '월'이라는 글자로 표시

MMMM : November, October...와 같이 월 표시를 영문 full name으로 표시

yyyy-MM-dd h:mm => 2013-11-25 3:25

yyyy-MM-dd h:mm a => 2013-11-25 3:25 pm

yyyy-MM-dd k:mm => 2013-11-25 15:25 (24시간제로 표시)


예제 소스는...

String crrTime = System.currentTimeMillis().toString();
String now = DateFormat.format("yyyy MMM dd k:mm", crrTime);
        
TextView txt = (TextView)findViewById(R.id.txt);
txt.setText(now);

여기서 DateFormat은 자바의 DateFormat(
java.text.DateFormat)이 아니라 안드로이드의 DateFormat이다. 
클래스 이름이 동일한 DateFormat은 자바에도 있고 안드로이드에도 있다.

android.text.format.DateFormat;

댓글 없음:

댓글 쓰기