Java Timestamp 时间戳转日期

简介

在Java中,时间戳(timestamp)是指从标准基准时间(称为epoch)开始计算的一个时间值,通常表示为一个长整型数。Java中的时间戳以毫秒为单位,即从epoch开始的毫秒数。时间戳在很多场景中非常有用,比如在日志记录、数据存储和时间比较等方面。本文将介绍如何将Java时间戳转换为可读的日期格式。

使用 java.util.Date

在Java中,我们可以使用 java.util.Date 类来表示日期和时间。我们可以使用 Date 类的构造函数,将时间戳作为参数传递给它,然后使用 SimpleDateFormat 类将其格式化为所需的日期字符串。

下面是一个示例代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class TimestampToDateExample {
    public static void main(String[] args) {
        long timestamp = System.currentTimeMillis();

        Date date = new Date(timestamp);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(date);

        System.out.println("Timestamp: " + timestamp);
        System.out.println("Formatted Date: " + formattedDate);
    }
}

上述代码中,我们获取当前的时间戳并将其传递给 Date 类的构造函数创建一个 Date 对象。然后,我们使用 SimpleDateFormat 类将 Date 对象格式化为 "yyyy-MM-dd HH:mm:ss" 格式的字符串。

输出结果如下:

Timestamp: 1617647907850
Formatted Date: 2021-04-05 10:38:27

上述示例代码中使用的时间格式是 "yyyy-MM-dd HH:mm:ss",你可以根据自己的需求选择其他格式。以下是一些常用的日期格式化符号:

符号 含义
yyyy 四位数年份
MM 月份(01-12)
dd 日期(01-31)
HH 小时(00-23)
mm 分钟(00-59)
ss 秒钟(00-59)

使用 java.time 包(Java 8+)

在Java 8及更高版本中,我们可以使用新的日期和时间API java.time 包来处理日期和时间。我们可以使用 java.time.Instant 类来表示时间戳,并使用 java.time.format.DateTimeFormatter 类将其格式化为所需的日期字符串。

以下是一个示例代码:

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

public class TimestampToDateExample {
    public static void main(String[] args) {
        long timestamp = System.currentTimeMillis();

        Instant instant = Instant.ofEpochMilli(timestamp);
        LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDate = dateTime.format(formatter);

        System.out.println("Timestamp: " + timestamp);
        System.out.println("Formatted Date: " + formattedDate);
    }
}

上述代码中,我们首先使用 Instant.ofEpochMilli() 方法将时间戳转换为 Instant 对象。然后,我们使用 LocalDateTime.ofInstant() 方法将 Instant 对象转换为 LocalDateTime 对象。最后,我们使用 DateTimeFormatter.ofPattern() 方法创建一个格式化器,并使用 format() 方法将 LocalDateTime 对象格式化为指定格式的字符串。

输出结果与前面相同。

总结

本文介绍了如何将Java时间戳转换为可读的日期格式。我们分别使用了 java.util.Date 类和 java.time 包来实现这个转换。无论你使用哪种方法,重要的是了解如何使用正确的格式化符号创建格式化器,并将其应用于 DateLocalDateTime 对象。

希望本文对你理解Java时间戳转换为日期有所帮助!