Saturday, November 04, 2006
Java/자바] 세계 시간; 각국 현재 시각 얻기; World Time, TimeZone 변경
세계 각국 주요 도시의 현재 시각을 얻는 예제 프로그램입니다.
getTimeZone 으로 타임존(시간대) 오브젝트를 만들어서, setTimeZone으로 설정해 주고, DateFormat 오브젝트로 출력해 주는 것인데, 좀 복잡하더군요.
일광절약시간제(DST; Daylight Saving Time) 즉 서머타임도 자동으로 인식합니다. 미국에는 서머타임이 적용되기에, 태평양 표준시 (PST)의 경우, 여름에는 자동으로 PDT 로 변경됩니다.
소스 파일명: Foo.java
TimeZone.getTimeZone("Asia/Seoul")
이 줄의 "Asia/Seoul" 이라는 부분에 다른 도시명을 넣으면 세계 각국의 시간으로 바꿀 수 있습니다.
컴파일 및 실행 결과:
즉, 한국의 현재 시각이 2006-11-04 11:24:42 일 때
캘리포니아주의 현재 시각은 2006-11-03 18:24:42 이렇습니다. "하루 전날의" 저녁6시입니다.
태평양 표준시는 미국 캘리포니아주의 시간입니다. 태평양 한복판의 시간이라는 뜻이 아니라 태평양 연안의 시간입니다.
동부 표준시는 뉴욕 시간입니다.
홍콩 표준시도 중국 표준시와 같았습니다. 북경과 상해 모두 중국 표준시를 사용합니다.
getTimeZone 으로 타임존(시간대) 오브젝트를 만들어서, setTimeZone으로 설정해 주고, DateFormat 오브젝트로 출력해 주는 것인데, 좀 복잡하더군요.
일광절약시간제(DST; Daylight Saving Time) 즉 서머타임도 자동으로 인식합니다. 미국에는 서머타임이 적용되기에, 태평양 표준시 (PST)의 경우, 여름에는 자동으로 PDT 로 변경됩니다.
세계 표준시 얻기; 시간대 변경 예제
소스 파일명: Foo.java
import java.util.*;
import java.text.*;
class Foo {
public static void main(String args[]) {
TimeZone tz;
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss (z Z)");
tz = TimeZone.getTimeZone("Asia/Seoul"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Greenwich"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("America/Los_Angeles"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("America/New_York"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Pacific/Honolulu"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Asia/Shanghai"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
}
}
import java.text.*;
class Foo {
public static void main(String args[]) {
TimeZone tz;
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss (z Z)");
tz = TimeZone.getTimeZone("Asia/Seoul"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Greenwich"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("America/Los_Angeles"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("America/New_York"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Pacific/Honolulu"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
tz = TimeZone.getTimeZone("Asia/Shanghai"); df.setTimeZone(tz);
System.out.format("%s%n%s%n%n", tz.getDisplayName(), df.format(date));
}
}
TimeZone.getTimeZone("Asia/Seoul")
이 줄의 "Asia/Seoul" 이라는 부분에 다른 도시명을 넣으면 세계 각국의 시간으로 바꿀 수 있습니다.
컴파일 및 실행 결과:
D:\Z>javac Foo.java && java Foo
한국 표준시
2006-11-04 11:24:42 (KST +0900)
그리니치 표준시
2006-11-04 02:24:42 (GMT +0000)
태평양 표준시
2006-11-03 18:24:42 (PST -0800)
동부 표준시
2006-11-03 21:24:42 (EST -0500)
하와이 표준시
2006-11-03 16:24:42 (HST -1000)
중국 표준시
2006-11-04 10:24:42 (CST +0800)
한국 표준시
2006-11-04 11:24:42 (KST +0900)
그리니치 표준시
2006-11-04 02:24:42 (GMT +0000)
태평양 표준시
2006-11-03 18:24:42 (PST -0800)
동부 표준시
2006-11-03 21:24:42 (EST -0500)
하와이 표준시
2006-11-03 16:24:42 (HST -1000)
중국 표준시
2006-11-04 10:24:42 (CST +0800)
즉, 한국의 현재 시각이 2006-11-04 11:24:42 일 때
캘리포니아주의 현재 시각은 2006-11-03 18:24:42 이렇습니다. "하루 전날의" 저녁6시입니다.
태평양 표준시는 미국 캘리포니아주의 시간입니다. 태평양 한복판의 시간이라는 뜻이 아니라 태평양 연안의 시간입니다.
동부 표준시는 뉴욕 시간입니다.
홍콩 표준시도 중국 표준시와 같았습니다. 북경과 상해 모두 중국 표준시를 사용합니다.
tag: java
자바 | Java
<< Home