首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将CellInfo时间戳转换为实际日期?

如何将CellInfo时间戳转换为实际日期?
EN

Stack Overflow用户
提问于 2018-11-04 16:38:42
回答 1查看 407关注 0票数 1

我正在使用TelephonyManger.getAllCellInfo收集附近细胞的信息。我注意到CellInfo包含一个名为mTimestamp的字段,根据文档,该字段是:

自启动以来,该单元格信息在nanos中的大致时间

现在,我想将这次转换为一个实际的时间戳,它将给我采样的具体日期。

是这样做的吗:return System.currentTimeMillis() - timestampFromBootInNano / 1000000L;是转换它的正确方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-04 16:48:58

不是的。自设备启动以来,mTimestamp是以纳秒为单位测量的。System.currentTimeMillis()是从1970年1月1日午夜开始测量的毫秒。

您可以:

  • mTimestamp中减去SystemClock.elapsedRealtimeNanos(),以确定时间戳表示多少纳秒前
  • 将其转换为毫秒,以确定时间戳表示多少毫秒前
  • System.currentTimeMillis()中减去这个值来确定时间戳的制作时间。

因此,这给了我们:

代码语言:javascript
复制
long millisecondsSinceEvent = (SystemClock.elapsedRealtimeNanos() - timestampFromBootInNano) / 1000000L;
long timeOfEvent = System.currentTimeMillis() - millisecondsSinceEvent;

timeOfEvent现在可以与java.util.Calendar、ThreeTenABP等一起使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53142971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档