UTC代表协调世界时.它是时间标准,在世界各地都很常用.所有时区都与UTC相比计算为偏移量.例如,丹麦哥本哈根的时间是UTC + 1表示UTC时间加一小时.它独立于Day light节省,应该用于在数据库中存储日期和时间.
时区转换
以下示例将展示转换各种时区.我们将以毫秒为单位打印一天中的小时和时间.第一个会有所不同,第二个会保持不变.
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: 12UTC: 1511956997540CPH: 13CPH: 1511956997540NYC: 7NYC: 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/AbidjanTimezone = Africa/Accra...Timezone = VST