我有以下代码,我的目标是以GMT+0毫秒为单位返回时间.但为什么我总是得到我当地的时区millisec?
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());
Run Code Online (Sandbox Code Playgroud)
输出
为时区ID为:GMT;以毫秒为单位的1332740915154
时间:时区ID为:Europe/Helsinki;以毫秒为单位的时间:1332740915154
为什么不同的时区以毫秒为单位给出SAME值?
我想如果是,GMT+0那么它应该是毫秒与本地时区的不同值.
Jon*_*eet 23
为什么不同的时区以毫秒为单位给出SAME值?
因为这就是它的意图.从文档:
(返回)从纪元开始的UTC毫秒的当前时间.
换句话说,它是Date返回的值getTime- 它不依赖于时区.如果您想要取决于时区的值,请使用Calendar.Get(Calendar.YEAR)等.
表示日历内时刻的两者Calendar.getTime()和Calendar.getTimeInMillis()返回值,它独立于时区和日历系统.
| 归档时间: |
|
| 查看次数: |
14575 次 |
| 最近记录: |