java - 如何在android中获取准确的UTC时间戳

标签 java android unix-timestamp

我不知道哪一个适合获取 UTC 时间

我的代码是

System.currentTimeMillis()

对于java android

国际结果正确吗?

也许用户可以更改设备时间并且结果会有所不同? (对UTC有影响吗?)

最佳答案

在Linux平台上,系统时钟应设置为UTC。是否真实、是否准确,最终取决于用户。

调用System.currentTimeMillis()将给出自1970-01-01T00:00:00Z以来的UTC时间。

Is the result correct for international?

是的。前提是时钟与良好的网络时间源同步并且用户没有弄乱它。

Maybe user can change device time and result be different?

是的,他们可以。您对此无能为力。

您可以尝试连接到网络时间服务器,但用户可能会阻止该操作,或者导致您的游戏连接到虚假时间服务器。如果他们“拥有”您的游戏运行的平台,您可能无法获得有保证的可靠时间。

(维基百科页面 NTP 讨论了中间人攻击。不幸的是,标准 NTP 没有办法处理这个问题。有一个 draft RFC 用于网络时间安全,但它们自 2015 年以来一直在致力于此,但在撰写本文时仍未得出结论。)

关于java - 如何在android中获取准确的UTC时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57216919/

相关文章:

java - 无法从 Java 连接到 MySQL : NullPointerException inside MySQL driver connection logic

java - 使用 IntStream 创建数组的随机子集的快速方法

java - 如何在Java中将格式化日期(yyyy-MM-dd)转换为Unix时间?

javascript - 带有 PHP echo 的 Unix 时间戳 Chart.js

java - Hibernate/JPA - 变量字段名称是@NamedQuery

java - 一对一未知映射者

android - "selectionArgs"在包含 "selection"的 "?"查询中不起作用

java - 弹出窗口的 Google Play 游戏服务 View

android - 如何将带有 complete = false 的模块中缺少的注入(inject)从 Dagger 1 迁移到 Dagger 2

php - 如何编写一个 SQL 查询来计算每月和每年的行数?