如何获得当前时间,而与设备或系统时间无关?

时间:2019-12-03 10:22:47

标签: android datetime

我正在尝试获取我的android应用程序中的实际时间,而不是获取系统/设备返回的时间。

假设今天是12月3日,并且我将系统日期更改为12月4日,现在我将在应用程序中获得12月4日这是不正确的。

我已应用以下代码:

val c = Calendar.getInstance()
c.timeZone = TimeZone.getTimeZone("UTC")
val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)
val sec = c.get(Calendar.SECOND)
val mYear1 = c.get(Calendar.YEAR)
val mMonth1 = c.get(Calendar.MONTH)
val mDay1 = c.get(Calendar.DAY_OF_MONTH)

获取时间。但这只会返回设备/系统日期。

我想要的只是获取实际日期。 (例如,我 12月3日不是12月4日)。

我还尝试从GPS获取时间,但这只会返回最后一个已知位置的时间,这可能会给我带来麻烦。

2 个答案:

答案 0 :(得分:0)

如果您不信任用户设备时间,则必须使用NTP(网络时间协议)服务器

我找到了这个存储库: https://github.com/AllanHasegawa/Tempo

答案 1 :(得分:0)

如果您不信任用户设置或设备时间,则可以简单地使用API​​,例如http://worldtimeapi.org/,并在任意时区中从中获取当前时间。