Java.util.TimeZone中TimeZone的用法
原创
©著作权归作者所有:来自51CTO博客作者Honyelchak的原创作品,请联系作者获取转载授权,否则将追究法律责任
今天在阅读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));
}
测试结果: