Java时区和java.util.Date

示例

一个java.util.Date对象具有时区的概念。

  • 无法为日期设置时区

  • 无法更改Date对象的时区

  • 使用默认构造函数创建的Date对象将使用系统默认时区中的当前时间进行初始化。new Date()

但是,可以使用例如java.text.SimpleDateFormat:在不同时区中显示由Date对象描述的时间点表示的日期:

Date date = new Date();
//打印默认时区
System.out.println(TimeZone.getDefault().getDisplayName());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //注意:时区格式不正确!
//在原始时区打印日期
System.out.println(sdf.format(date));
//伦敦时间
sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(sdf.format(date));

输出:

Central European Time
2016-07-21 22:50:56
2016-07-21 21:50:56