Android-Java:如果当前时区开启,那么location.getTime()将返回UTC-1而不是UTC.

时间:2015-09-03 13:27:22

标签: android gps location

location.getTime() ->GPS-Listener 

返回longint-value 1441279754000

根据http://currentmillis.com/ 1441279754000 代表
' 星期四2015年9月3日11:29:14 UTC ',虽然当前时间是
' 2015年9月3日星期四1 2 :29:14 UTC '

设备上的当前时区:
GMT+2:00, Central European Summer Time(夏令时)

将时区更改为:
GMT+4:00 Moscow(没有夏令时):
- > location.getTime()返回了正确的值。

可能是Android 4.4.2中的错误;设备是' Wiko Rainbow 4G':

如果当前时区是daylight-savings-timezone,则返回错误的值(UTC-1)。

有谁知道解决方法或我做错了吗?

更多信息:

使用:

public class MyLocationListener implements LocationListener{
...
public void onLocationChanged(Location location){
    long millis = location.getTime();
    long deltaToDeviceTime = millis - System.currentTimeMillis();
    ...
}}

表示gps-timestamp' millis'刚刚到达 - 很新鲜。

在测试程序运行时,我转到

  

Android-main-menu - >设置 - >日期&时间 - >选择时区

并从中更改时区 a' daylight-savings-timezone'到
a'非日光节约时区'然后回来。

使用非日光节约时区' deltaToDeviceTime的值为
约2000 ==两秒 - >正确的。

使用' daylight-savings-timezone' deltaToDeviceTime的值为
约3600000 ==一小时 - >错。

0 个答案:

没有答案