专业的JAVA编程教程与资源

网站首页 > java教程 正文

100个Java工具类之54:时区偏移类TimeZone

temp10 2025-01-27 00:22:29 java教程 13 ℃ 0 评论

众所周知,由于各国家或地区的经度差异,地方时有所不同,全世界共划分为24个时区。

如:北京时间是东八区。

100个Java工具类之54:时区偏移类TimeZone

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之后已被弃用,推荐使用ZoneIdZonedDateTime类来处理时区和日期。

抵制日本核食,从你我做起~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表