Java 如何获取当前时间的毫秒部分而不是 1970 年的毫秒部分

标签 java time milliseconds

我使用 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 为您提供从 0M - 1 的数字。因此,您始终会获得从 0999 的毫秒数。每次 currentTimeInMilliSec 前进 1 时,该数字也会前进 1,但如果该数字超过 999,它就会扭曲为 0 ,这正是您想要的行为。

关于Java 如何获取当前时间的毫秒部分而不是 1970 年的毫秒部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117860/

相关文章:

c - 这些时钟之间有什么区别, `real-time clock` ,`wall clock` ,`system clock` ?

java - 安装了两个版本的Java,哪个优先?

java - 将操作事件处理程序添加到文本字段 java fx

java - 当比较基于我自己的方法的结果时,我可以使用 Comparator.comparing() 定义一个新的比较器吗?

javascript - Nodejs os.uptime() 返回错误的正常运行时间值(以毫秒为单位)

python - 如何将 mm :ss. ms 转换为 ss.ms?

java - 你怎么能用显示毫秒的计时器制作秒表?

java - 如何使用 java.. 从 .prn (pcl6) 文件中提取所需数据?

C++ MFC 获取当前日期和时间

java - 如何将日期字符串转换为joda日期时间?