Java Date and Time系列(六)- java.util.TimeZone介绍

原创 2013年12月04日 17:37:04

java.util.TimeZone是一个表示时区的类,如果需要跨时区转换日期,那么可以用java.util.Calendar和java.util.TimeZone联合完成。

可以用下面的方式来获取日历的时区:

Calendar calendar = new GregorianCalendar();
TimeZone timeZone = calendar.getTimeZone();
也可以通过set方法设置一个日历的时区:
calendar.setTimeZone(timeZone);

创建TimeZone实例
有两种方式可以用来创建一个TimeZone实例:

String[] availableIDs = TimeZone.getAvailableIDs();
for (String availableID : availableIDs) {
    System.out.println(availableID);
}

时区转换

我们可以通过给日历设置时区,使日历在不同的时区转换,比如下面这个例子:

TimeZone timeZone1 = TimeZone.getTimeZone("America/Los_Angeles");
TimeZone timeZone2 = TimeZone.getTimeZone("Europe/Copenhagen");

Calendar calendar = new GregorianCalendar();

long timeCPH = calendar.getTimeInMillis();
System.out.println("timeCPH  = " + timeCPH);
System.out.println("hour     = " + calendar.get(Calendar.HOUR_OF_DAY));

calendar.setTimeZone(timeZone1);

long timeLA = calendar.getTimeInMillis();
System.out.println("timeLA   = " + timeLA);
System.out.println("hour     = " + calendar.get(Calendar.HOUR_OF_DAY));
输出如下:

timeHere = 1264881305341
hour     = 20
timeLA   = 1264881305341
hour     = 11
我们发现虽然两个时区的毫秒数是一样的,但是时间表示上却有9个小时的时差。那是因为毫秒数是根据UTC时间(世界标准时间)获取的,
但是时间表示在不同的时区是不同的。

Java Date and Time系列(五)- java.util.Calendar/java.util.GregorianCalendar介绍

java.util.Calendar是一个抽象类,它定义了日历相关的一系列操作,使用java.util.Calendar除了可以表示日期和时间,还可以用它来对时期或时间进行算术运算,比如获取当前日期1...

Java Date and Time系列(二)- System.currentTimeMillis()介绍

System.currentTimeMillis() 静态方法System.currentTimeMillis()返回1970-01-01 00:00:00.000到现在的毫秒数,返回值是一个lon...

Java Date and Time系列(七)- java.text.SimpleDateFormat介绍

java.text.SimpleDateFormat类我们一般用来它实现字符串于java.util.Date之间的互转,比如将Date实例转换为指定的字符串表示形式, 或者将一个字符串的日期表示转为具...

mybatis异常invalid comparison: java.util.Date and java.lang.String

开发中改动mapper文件后需要重新编译发布, 由于工程比较大非常耗时, 所以为方便快速测试干脆写了一个小Java工程. 工程中用到的dao, mapper和实体类都是从工程中拷出来的, 数据...

Java Date and Time系列(四)- java.sql.Date/java.sql.Time/java.sql.Timestamp介绍

java.sql.Date是在JDBC中使用的日期类,在JDBC操作中,如果需要设置一个日期或者从ResultSet获取日期值,就需要使用到java.sql.Date。实际上java.sql.Date...

【Learning】Java Date and Time

1. There are four commonly used date time classes in Java:  1.1 java.util.Date 1.2 java.sq...

Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口

本章主要是收藏一些常用的类和接口,包括:万年历(农历、阳历节日、阴历节日)、自定义的Calendar接口。    万年历 源码如下(ChineseCalendar.java): 1 ...

探索 Java 中的 Date, Calendar, TimeZone 和Timestamp

探索 Java 中的 Date, Calendar, TimeZone 和Timestampjava 2010-12-31 08:56:49 阅读8 评论0  字号:大中小 订阅对象    宋晟 (s...
  • yy6060
  • yy6060
  • 2011年03月31日 10:04
  • 412

Java 日期处理 Date 、Calendar 和TimeZone类

以下内容部分来自 疯狂Java讲义/李刚 ,博客仅用于个人笔记及帮助他人用途,无任何商业目的,如有侵权,请联系作者删除。 Date 类Java提供了 Date 类来处理日期、时间(此处的Date是指 ...

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结   java.lang.Object ....|__jav...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Date and Time系列(六)- java.util.TimeZone介绍
举报原因:
原因补充:

(最多只允许输入30个字)