今天在阅读​​Quartz​​源码的时候,列出一些知识盲点,在eclipse中测试测试准备写个博客加深印象。

java.util.TimeZone

类型:​​abstract class​

继承:​​java.lang.Object​

实现的接口:​​Serializable​​​、​​Cloneable​

  • 意味着该类的实例可以被​​序列化​​​和​​按字段复制​

直接已知子类:​​SimpleTimeZone​

用来表示 时区偏移量

下面来介绍一下常用的方法:

常用方法

getDefault()

获取此主机的默认​​TimeZone​​。

默认是JVM中设置的默认TimeZone

TimeZone t = TimeZone.getDefault();

​返回值​​​ : ​​TimeZone​

setDefault()

设置由​​getDefault​​​方法返回的​​TimeZone​​。

TimeZone.setDefault(TimeZone.getTimeZone("JST"));

获取TimeZone的基本信息

//获取TimeZone对象的时区ID
String id = t.getID();
// 获取TimeZone对象的名称
String name = t.getDisplayName();
// 返回该时区和世界标准时间UTC的时差
String name = t.getOffset(System.currentTimeMillis());
getAvailableIDs()

获取受支持的所有可用的时区ID

String[] list = TimeZone.getAvailableIDs();

​返回值​​​ : ​​String[]​

getTimeZone(String id)

获取指定ID的TimeZone对象

TimeZone zoneChina = TimeZone.getTimeZone("Asia/Shanghai");

​返回值​​​ : ​​TimeZone​

测试例子

public static void main(String[] args) {
//设置Date输出格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//日本时区
TimeZone zoneJapan = TimeZone.getTimeZone("JST");
//中国时区
TimeZone zoneChina = TimeZone.getTimeZone("Asia/Shanghai");

//输出所有可支持的时区ID
/*String[] list = TimeZone.getAvailableIDs();
for (String string : list) {
System.out.println(string);
}*/

Date d = new Date();

sdf.setTimeZone(zoneJapan);
System.out.println(sdf.format(d));
sdf.setTimeZone(zoneChina);
System.out.println(sdf.format(d));
}

测试结果:

Java.util.TimeZone中TimeZone的用法_System