java - 如何使用 java.sql.Timestamp 减去日期

标签 java timestamp

我实际上正在检查插入“N”个元素的集合所花费的时间,

现在我一直在检查 ArrayList 在插入过程中所花费的总时间。

Timestamp startTimeStamp = new Timestamp(System.currentTimeMillis());
    System.out.println("Start Insertion :: "+startTimeStamp);

    List<Integer> intList = new ArrayList<>();
    for (int i = 0; i <= 100000000; i++) {
        intList.add(i);
    }
    Timestamp endTimeStamp = new Timestamp(System.currentTimeMillis());
    System.out.println("End insertion :: "+endTimeStamp);
    // Total time taken 
    // TODO       

输出: 开始插入::2020-03-19 16:47:27.395 结束插入::2020-03-19 16:48:11.963

最佳答案

简单、老式的方法是对每个 Timestamp 使用 getTime() 方法并减去结果,得到两次时间戳之间经过的毫秒数二:

long millisElapsed = endTimeStamp.getTime() - startTimeStamp.getTime();

不过,使用更现代的 API,您可能会将每个时间戳转换为 Instant,并计算由这些时间戳括起来的 Duration:

Duration elapsedDuration =
        Duration.between(startTimeStamp.toInstant(), endTimeStamp.toInstant());

Duration 比原始 long 具有更多的结构和支持,但也许它超出了您的需要。

关于java - 如何使用 java.sql.Timestamp 减去日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756501/

相关文章:

java - 为什么需要注销OnPreferenceChangeListener?

BigDecimal、除法和 MathContext - 非常奇怪的行为

PHP - 从时差中排除所有非工作时间/天

mysql - SQL 查询 - 返回特定值之前的所有值

SQL日期转换获取 "Invalid Number"

timestamp - TcpDump:显示pcap文件的绝对时间戳(日期和时间)

Java:如何对两个不同长度的数组的元素求和

java - 用于决定调用哪个方法的 URL 参数的替代方案

java - 在注释中支持 "Extendable enums"的最佳方式?

mysql - 作为 MySQL 时间戳的库存正常运行时间值