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
包来实现这个转换。无论你使用哪种方法,重要的是了解如何使用正确的格式化符号创建格式化器,并将其应用于 Date
或 LocalDateTime
对象。
希望本文对你理解Java时间戳转换为日期有所帮助!