📜  Java TimeZone类(1)

📅  最后修改于: 2023-12-03 15:31:32.647000             🧑  作者: Mango

Java TimeZone类

介绍

Java TimeZone类是Java.util包下的一个类,它提供了处理世界时区的功能。它可以将不同时区的时间表示为一个标准时间,也可以将一个标准时间转换为不同时区的时间。

Java在处理日期和时间时,先需要指定时区。时区是一个地理区域,在该区域内使用相同的标准时间。Java中支持的时区如下图所示:

时区列表

方法
1. getDefault()

此方法是静态的,可以返回一个默认的TimeZone对象,它表示Java运行环境的本地时间。getDefault()方法的源代码如下:

public static synchronized TimeZone getDefault() {
    if (defaultZone == null) {
        defaultZone = createDefaultTimeZone();
    }
    return (TimeZone)defaultZone.clone();
}
2. getAvailableIDs()

此方法是静态的,它返回所有可用的时区ID。

public static String[] getAvailableIDs()
3. getDisplayName()

此方法返回时区的名字,它有三个重载方法:

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指定的地方返回显示名称。

4. getID()

此方法返回时区的ID。

public final String getID()
5. getTimeZone()

此方法返回一个TimeZone对象,它代表了一个指定的时区。

public static synchronized TimeZone getTimeZone(String ID)
代码示例
1. 获取默认时区
TimeZone defaultZone = TimeZone.getDefault();
System.out.println(defaultZone.getID());
2. 获取可用的时区ID
String[] availableIDs = TimeZone.getAvailableIDs();
for (String id : availableIDs) {
    System.out.println(id);
}
3. 根据时区ID获取时区对象
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());