众所周知,由于各国家或地区的经度差异,地方时有所不同,全世界共划分为24个时区。
如:北京时间是东八区。
TimeZone,字面含义是时间偏移量,可以使用该类获取各地时区、计算时间差、获取夏令时等。
下面将从三个方面来介绍TimeZone。
一、获取时区
//实例化
TimeZone timeZone = TimeZone.getDefault();
//获取时区名称
String displayName = timeZone.getDisplayName();
输出:中国标准时间
//获取时区ID
String id = timeZone.getID();
输出:Asia/Shanghai
//获取特定时区
TimeZone timeZone = TimeZone.getTimeZone("America/New_York");
输出:纽约时区: 东部标准时间
//获取相对于本初子午线的偏移量(毫秒)
//28800000 = 8 * 60 * 60 * 1000 = 8小时
int rawOffset = timeZone.getRawOffset();
输出:28800000
二、获取可用时区列表
String[] availableIDs = TimeZone.getAvailableIDs();
输出:[Asia/Shanghai,Africa/Abidjan, Africa/Accra... ...
三、时区转换
中国上海是东八区,美股纽约是西五区,中国上海比美股纽约快了12个小时。
//获取中国上海现在小时数
Calendar calendar = Calendar.getInstance();
TimeZone timeZone1 = TimeZone.getTimeZone("Asia/Shanghai");
calendar.setTimeZone(timeZone1);
int hour1 = calendar.get(Calendar.HOUR_OF_DAY);
输出:14
//获取美国纽约现在小时数
TimeZone timeZone2 = TimeZone.getTimeZone("America/New_York");
calendar.setTimeZone(timeZone2);
int hour2 = calendar.get(Calendar.HOUR_OF_DAY);
输出:2
这些是使用TimeZone类的一些基本方法。请注意,TimeZone类在Java 8之后已被弃用,推荐使用ZoneId和ZonedDateTime类来处理时区和日期。
抵制日本核食,从你我做起~
本文暂时没有评论,来添加一个吧(●'◡'●)