GVi*_*i82 6 timezone android calendar gettime
参考上面的链接,我认为Calendar类的getTimeInMillis()返回独立于时区的毫秒数.
但是使用以下代码:
Calendar cal = Calendar.getInstance();
int dateInSeconds = (int)(cal.getTimeInMillis()/1000);
Log.i("TIME IN SECONDS: ",""+dateInSeconds);
Run Code Online (Sandbox Code Playgroud)
首先尝试将我的系统时钟设置为10:00和GMT + 02:00
产生一定的输出数量.但是将系统时钟设置为10:00和GMT + 00:00
输出数量比先前的情况大约7200,相当于约2小时.
为什么?
为了获得独立于时区的毫秒数,我找到了以下解决方案
代替:
int dateInSeconds = (int)(cal.getTimeInMillis()/1000);
Run Code Online (Sandbox Code Playgroud)
我用:
int dateInSeconds = (int)((cal.getTimeInMillis()+cal.getTimeZone().getOffset(cal.getTimeInMillis()))/1000);
Run Code Online (Sandbox Code Playgroud)
它对我有好处.
你弄错了.getTimeInMillis() 将会给你独立的时区的时间.如果更改计算机时钟上的时区,但仍保持相同的显示时间,则实际上会更改与时区无关的时间.因此,你应该不使用你提供的代码,也不应任何人阅读本.
| 归档时间: |
|
| 查看次数: |
8353 次 |
| 最近记录: |