如何设置java.util.Date的时区?

我已经从String分析了java.util.Date ,但它将本地时区设置为date对象的时区。

时区未在解析DateString指定。 我想设置date对象的特定时区。

我怎样才能做到这一点?


使用DateFormat。 例如,

SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = isoFormat.parse("2010-05-23T09:01:02");

请注意, java.util.Date对象本身不包含任何时区信息 - 您无法在Date对象上设置时区。 Date对象包含的唯一东西是1970年1月1日00:00:00 UTC以来的“纪元”以来的毫秒数。

正如ZZ编码器显示的那样,您可以在DateFormat对象上设置时区,告诉它您想在哪个时区显示日期和时间。


您还可以在JVM级别设置时区

Date date1 = new Date();
System.out.println(date1);

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
// or pass in a command line arg: -Duser.timezone="UTC"

Date date2 = new Date();
System.out.println(date2);

输出:

Thu Sep 05 10:11:12 EDT 2013
Thu Sep 05 14:11:12 UTC 2013
链接地址: http://www.djcxy.com/p/18667.html

上一篇: How to set time zone of a java.util.Date?

下一篇: input of date in html5 with a prompt for today