Java当前时间api中的不同值

标签 java datetime time java-8 milliseconds

我对使用 Java SE 7 和 8 API 的 DateTime 相关类来显示当前时间感到有点困惑,我正在查看获取系统当前日期时间的多种方法。

我的问题是:哪一个以毫秒为单位显示时间更准确?

接下来是代码片段,我使用 Java 8 进行审查。

import java.time.Instant;
import java.util.Calendar;
import java.util.Date;

public class CurrentTimeValidationDemo {
    public static void main(String[] args) {
        Instant now = Instant.now();
        Calendar calendar=Calendar.getInstance();
        Date currDate = new Date();
        System.out.println("new Date().getTime() = "+currDate.getTime());
        System.out.println("System.currentTimeMillis() = "+System.currentTimeMillis());
        System.out.println("Instant.now().toEpochMilli() = "+now.toEpochMilli());
        System.out.println("Calendar.getInstance().getTimeInMillis() = "+calendar.getTimeInMillis());
        System.out.println("Calendar.getInstance().getTime().getTime() = "+calendar.getTime().getTime());
    }
}

最佳答案

您在示例中使用的所有函数都返回相同的值(如果在同一毫秒内启动),没有一个函数更准确。

其中一个不创建任何对象,因此如果您只需要知道自 1970 年 1 月 1 日以来的当前毫秒数,请使用

System.currentTimeMillis()

相反,如果您还需要等效的对象来存储该值或进行其他操作,请使用您需要的对象。

例如,如果您需要将此值传递给接受 java.util.Date 的函数,请使用 java.util.Date (依此类推)。

关于Java当前时间api中的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848243/

相关文章:

php - 格式化时差的函数

java - 如何在 SWT java 中的选项卡式项目中创建新选项卡

java - 如何测试一个类及其子类

python - 日期时间到文件时间 (Python)

java - 对 java 日期求和时出现意外结果

c# - 从 0 :00 or 00:00 to 00:00:00 转换持续时间

java - 求凸多边形 vector 交点的度数

java - jsch的ChannelSftp中exit和quit有什么区别?

c# - 在 C# 中验证不同的日期格式

c++ - 如何用C连续输出计算开始后的秒数?