📅  最后修改于: 2023-12-03 15:31:32.647000             🧑  作者: Mango
Java TimeZone类是Java.util包下的一个类,它提供了处理世界时区的功能。它可以将不同时区的时间表示为一个标准时间,也可以将一个标准时间转换为不同时区的时间。
Java在处理日期和时间时,先需要指定时区。时区是一个地理区域,在该区域内使用相同的标准时间。Java中支持的时区如下图所示:
此方法是静态的,可以返回一个默认的TimeZone对象,它表示Java运行环境的本地时间。getDefault()方法的源代码如下:
public static synchronized TimeZone getDefault() {
if (defaultZone == null) {
defaultZone = createDefaultTimeZone();
}
return (TimeZone)defaultZone.clone();
}
此方法是静态的,它返回所有可用的时区ID。
public static String[] getAvailableIDs()
此方法返回时区的名字,它有三个重载方法:
public final String getDisplayName()
public final String getDisplayName(boolean daylightTime, int style)
public String getDisplayName(boolean daylightTime, int style, Locale locale)
第一个方法返回缩写名,第二个方法根据daylightTime和style指定的格式返回显示名称,第三个方法根据daylightTime、style和locale指定的地方返回显示名称。
此方法返回时区的ID。
public final String getID()
此方法返回一个TimeZone对象,它代表了一个指定的时区。
public static synchronized TimeZone getTimeZone(String ID)
TimeZone defaultZone = TimeZone.getDefault();
System.out.println(defaultZone.getID());
String[] availableIDs = TimeZone.getAvailableIDs();
for (String id : availableIDs) {
System.out.println(id);
}
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());