我使用 System.currentTimeMillis() 来获取自 1970 年以来的毫秒数,我可以使用以下方法获取当前的小时、分钟和秒:
Long currTimeInMilliSec = System.currentTimeMillis()
int h = (((currTimeInMilliSec / 1000) / 3600 ) % 24)
int m = (((currTimeInMilliSec / 1000) / 60) % 60)
int s = ((currTimeInMilliSec / 1000) % 60)
如何计算当前时间的毫秒数(不是从 1970 年开始),因为如果我使用 int ms = currentTimeInMilliSec 那将是从 1970 年开始的毫秒数。
注意:由于某种原因,我只需要使用 currentTimeMillis 函数来计算,我不想使用其他函数或外部库。
最佳答案
使用currentTimeInMilliSec % 1000
。
您也可以这样想:它的工作原理与 int m = totalMinutes % 60
的工作原理相同,并且您已经发现它是有效的。
但更详细的解释如下:N % M
为您提供从 0
到 M - 1
的数字。因此,您始终会获得从 0
到 999
的毫秒数。每次 currentTimeInMilliSec
前进 1 时,该数字也会前进 1,但如果该数字超过 999
,它就会扭曲为 0
,这正是您想要的行为。
关于Java 如何获取当前时间的毫秒部分而不是 1970 年的毫秒部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117860/