gpt4 book ai didi

Android 位置 getTime() 总是返回大不同的时间

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:46 24 4
gpt4 key购买 nike

我根据设置定期使用位置管理器获取位置,在测试用例中使用 2 分钟并尝试使用 location.geTime() 方法。我没有使用 LocationManager.getLastKnownLocation()。文档说这是 UTC 时间,我将其转换为本地时间,如下所示:

Date d = new Date(location.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddkkmmss';
sdf.setTimeZone(TimeZone.getTimneZone("UTC");
sdf.format(d);

但我得到的日期与我预期的不同。我写的当前时间大约是 130516155000(2013-05-16 15:50:00) 但我得到的是 040015130515。我删除了时区并将时区也设置为“GMT”并且日期固定但时间完全不同。在真实设备和模拟器中是相同的。我已经检查了两者的时区设置,它们是正确的。请告诉我我缺少什么?

谢谢。

编辑:

我添加更多。

Log:
05-16 16:09:30.227: D/location.getTime()(1279): 1368590417000
05-16 16:09:30.237: D/NMEAGPRMCTime(1279): 040017
05-16 16:09:30.247: D/NMEAGPRMCDate(1279): 130515

代码:

public static String NMEAGPRMCTime(Date d)
{
SimpleDateFormat sdf = new SimpleDateFormat("kkmmss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String result = sdf.format(d);
Log.d("NMEAGPRMCTime", result);
return result;
}


public static String NMEAGPRMCDate(Date d)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String result = sdf.format(d);
Log.d("NMEAGPRMCDate", result);

return result;
}

就是这样。这正是我使用的代码。

最佳答案

这里的格式绝对没有问题。

查看日志:

05-16 16:09:30.227: D/location.getTime()(1279): 1368590417000
05-16 16:09:30.237: D/NMEAGPRMCTime(1279): 040017
05-16 16:09:30.247: D/NMEAGPRMCDate(1279): 130515

使用 epochconverter您可以看到 1368590417000 的“自纪元以来的毫秒”值实际上是 2013 年 5 月 15 日星期三 04:00:17 UTC。所以时间 040017 和日期 130515 是完全正确的。

我怀疑您实际上对 Location.getTime() 感到困惑确实 - 它返回修复时间,而不是当前时间。所以基本上,无论当前日期/时间如何,该位置都是在 04:00:17 UTC 获得的。

关于Android 位置 getTime() 总是返回大不同的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com