📅  最后修改于: 2020-11-15 03:41:45             🧑  作者: Mango
UTC代表协调世界时。这是时间标准,在世界范围内普遍使用。所有时区均以UTC作为偏移量进行比较计算。例如,丹麦哥本哈根的时间为UTC + 1表示UTC时间加一小时。它独立于日光节约时间,应用于在数据库中存储日期和时间。
以下示例将展示各种时区的转换。我们将以小时为单位打印日期和时间。第一将有所不同,第二将保持不变。
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());
}
}
它将打印以下结果。
UTC: 12
UTC: 1511956997540
CPH: 13
CPH: 1511956997540
NYC: 7
NYC: 1511956997540
以下示例将展示系统可用的时区。
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);
}
}
}
它将打印以下结果。
Timezone = Africa/Abidjan
Timezone = Africa/Accra
...
Timezone = VST