UTC代表協(xié)調(diào)世界時(shí)。 這是時(shí)間標(biāo)準(zhǔn),并在全世界普遍使用。 所有時(shí)區(qū)的計(jì)算都與UTC的時(shí)差相當(dāng)。 例如,丹麥哥本哈根的時(shí)間是UTC + 1表示UTC時(shí)間加上一個(gè)小時(shí)。用于在數(shù)據(jù)庫(kù)中存儲(chǔ)日期和時(shí)間。
以下示例將展示各種時(shí)區(qū)的轉(zhuǎn)換。 我們將以毫秒為單位打印一天中的小時(shí)和時(shí)間。 第一次將會(huì)有所不同,第二次將保持不變。
文件:IOTester.java -
import java.text.ParseException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class I18NTester {
public static void main(String[] args) throws ParseException {
Calendar date = new GregorianCalendar();
date.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
date.set(Calendar.HOUR_OF_DAY, 12);
System.out.println("UTC: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("UTC: " + date.getTimeInMillis());
date.setTimeZone(TimeZone.getTimeZone("Europe/Copenhagen"));
System.out.println("CPH: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("CPH: " + date.getTimeInMillis());
date.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println("NYC: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("NYC: " + date.getTimeInMillis());
}
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
UTC: 12
UTC: 1511956997540
CPH: 13
CPH: 1511956997540
NYC: 7
NYC: 1511956997540
以下示例將展示系統(tǒng)可用的時(shí)區(qū)。
文件:IOTester.java -
import java.text.ParseException;
import java.util.TimeZone;
public class I18NTester {
public static void main(String[] args) throws ParseException {
String[] availableIDs = TimeZone.getAvailableIDs();
for(String id : availableIDs) {
System.out.println("Timezone = " + id);
}
}
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
Timezone = Africa/Abidjan
Timezone = Africa/Accra
...
Timezone = VST