【发布时间】:2012-03-26 05:52:33
【问题描述】:
我有以下代码,我的目标是以毫秒为单位返回 GMT+0 时间。但是为什么我总是得到我的本地时区毫秒?
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Calendar cal2 = Calendar.getInstance();
System.out.println("Time zone id is:"+cal.getTimeZone().getID()+";time in millisec:"+cal.getTimeInMillis());
System.out.println("Time zone id is:"+cal2.getTimeZone().getID()+";time in millisec:"+cal2.getTimeInMillis());
输出是
时区 id 为:GMT;时间以毫秒为单位:1332740915154
时区 id 为:Europe/Helsinki;time in millisec:1332740915154
为什么不同的时区以毫秒为单位给出相同的值?
我想如果它是GMT+0,那么它应该是与本地时区不同的毫秒值。
【问题讨论】:
-
您系统中的时区是多少?
-
System.currentTimeMillis(); 怎么样?
-
我的时区是 GMT+2 夏令时
-
现代评论:我建议你不要使用
Calendar和TimeZone。这些课程设计不良且早已过时。而是使用来自java.time, the modern Java date and time API 的Instant。ZoneId如果您需要表示时区。
标签: java