我解析了一个来自String
的java.util.Date
,但它将本地时区设置为date
对象的时区。
在从中分析Date
的String
中未指定时区。我想设置date
对象的特定时区。
我该怎么做呢?
发布于 2010-05-23 18:49:57
使用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");
发布于 2010-05-23 22:45:22
请注意,java.util.Date
对象本身不包含任何时区信息-您不能在Date
对象上设置时区。Date
对象唯一包含的是自“纪元”以来的毫秒数--1970年1月1日,世界时00:00:00。
如ZZ Coder所示,您在DateFormat
对象上设置时区,以告诉它您希望在哪个时区中显示日期和时间。
发布于 2013-09-05 22:15:18
您还可以在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
https://stackoverflow.com/questions/2891361
复制相似问题