Java中时间戳去除毫秒的方法及实例

在Java中,我们经常需要处理时间戳,即自1970年1月1日00:00:00 GMT以来的毫秒数。然而,有时候我们希望去除时间戳的毫秒部分,只保留到秒。本文将介绍如何在Java中实现这一功能。

方法一:使用java.sql.Timestamp

java.sql.Timestamp类是Java SQL包中的一个类,它扩展了java.util.Date类,并提供了设置日期和时间的额外方法。我们可以使用这个类的setNanos()方法来设置纳秒字段,从而实现去除毫秒的效果。

import java.sql.Timestamp;

public class Main {
    public static void main(String[] args) {
        // 获取当前时间戳(包含毫秒)
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
        System.out.println("原始时间戳:" + timestamp);

        // 去除毫秒
        timestamp.setNanos(0);
        System.out.println("去除毫秒后的时间戳:" + timestamp);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

方法二:使用java.time

Java 8引入了全新的日期和时间API,位于java.time包中。我们可以使用Instant类表示时间戳,然后将其转换为LocalDateTime对象,最后格式化为不包含毫秒的字符串。

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // 获取当前时间戳(包含毫秒)
        Instant now = Instant.now();
        System.out.println("原始时间戳: " + now);

        // 转换为LocalDateTime并去除毫秒
        LocalDateTime localDateTime = LocalDateTime.ofInstant(now, ZoneId.systemDefault());
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDateTime = localDateTime.format(formatter);
        System.out.println("去除毫秒后的时间: " + formattedDateTime);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

总结

以上两种方法都可以实现Java中时间戳去除毫秒的功能。方法一使用了java.sql.Timestamp类,适用于与数据库相关的操作。方法二使用了Java 8的新日期和时间API,更加简洁和易读。根据实际需求选择合适的方法即可。