我一直在担心如果时间重置我的应用可能会中断,但经过进一步测试后,我对此不再那么担心。
大约6:40 A.M.
,我将值打印给自己(我从手机上读取):1453203669474
。我为自己计算的价值是24000000
。这让我觉得时间是累积的,但这并没有多大意义。我看到的所有问题和答案都告诉我输出是假设代表系统时间,而不是。
我是否误解了System.currentTimeMillis
的工作原理?
答案 0 :(得分:2)
"当前时间毫秒"是UTC时间1970年1月1日午夜以来的毫秒数。
底层签名的64位整数将在大约2.92亿年内回归。 https://en.wikipedia.org/wiki/Year_2038_problem
答案 1 :(得分:0)
在文档中,您可以阅读它返回
当前时间与之间的差异,以毫秒为单位 UTC时间1970年1月1日午夜。
所以你不必担心。这里是文档:https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis()
答案 2 :(得分:0)
它做什么?
valueInMIllis =(当前设备/系统时间)MINUS(1970年1月1日00:00:00.0 UTC)
如果某人"将当前系统时间和日期更改为某个其他值,则唯一可能遇到问题的方法"
返回自1970年1月1日00:00:00.0 UTC以来的当前时间(以毫秒为单位)。 无论系统的时区如何,此方法始终返回UTC时间。 这通常称为" Unix时间"或"纪元时间"。
此方法不应用于测量超时或 其他经过时间的测量,因为改变系统时间会影响,否则它的工作正常。