将 Epoch 时间戳转换为人类可读的日期是软件开发者最常见的任务之一。无论是调试服务器日志、构建用户界面还是分析数据库记录,掌握这种转换方法都至关重要。因为 Unix 时间是一个通用标准,几乎所有现代编程语言都提供了内置库和函数来轻松处理它。下面展示了如何在几种常用语言中将标准的 10 位 Epoch 时间戳(秒)转换为可读的日期字符串。
JavaScript / Node.js
在 JavaScript 中,原生 Date 对象用于处理时间。但请记住,JavaScript Date 构造函数接收的是毫秒而非秒。要转换标准的 Unix 时间戳,必须乘以 1000。
// 秒级 Unix 时间戳
const unixTimestamp = 1672531200;
// 乘以 1000 转换为毫秒
const dateObject = new Date(unixTimestamp * 1000);
// 以本地时区输出
console.log(dateObject.toLocaleString());
// 输出示例: '2022/12/31 19:00:00'
// 以 UTC 输出
console.log(dateObject.toUTCString());
// 输出示例: 'Sun, 01 Jan 2023 00:00:00 GMT'
Python
Python 内置的 datetime 模块使此过程极其简单。fromtimestamp() 方法接收秒级时间戳并返回本地 datetime 对象,而 utcfromtimestamp() 返回 UTC datetime 对象。
import datetime
unix_timestamp = 1672531200
# 转换为本地时间
local_time = datetime.datetime.fromtimestamp(unix_timestamp)
print(local_time.strftime('%Y-%m-%d %H:%M:%S'))
# 转换为 UTC 时间
utc_time = datetime.datetime.utcfromtimestamp(unix_timestamp)
print(utc_time.strftime('%Y-%m-%d %H:%M:%S'))
PHP
PHP 拥有出色的日期处理工具。标准的 date() 函数允许您将 Unix 时间戳作为第二个参数直接传递并格式化。
$unix_timestamp = 1672531200;
// 转换并格式化时间戳
$readable_date = date('Y-m-d H:i:s', $unix_timestamp);
echo $readable_date;
Java
在现代 Java(Java 8 及更新版本)中,推荐使用 java.time 包。Instant 类表示时间轴上的特定时刻。
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.ZonedDateTime;
public class EpochConverter {
public static void main(String[] args) {
long unixTimestamp = 1672531200L;
// 从秒数创建 Instant
Instant instant = Instant.ofEpochSecond(unixTimestamp);
// 转换为特定时区(如 UTC)
ZonedDateTime dateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC"));
// 格式化输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(dateTime.format(formatter));
}
}
Go (Golang)
Go 的 time 包高效可靠。您可以使用 time.Unix() 函数,该函数接收秒和纳秒作为参数。
package main
import (
"fmt"
"time"
)
func main() {
unixTimestamp := int64(1672531200)
// 转换时间戳(秒,纳秒)
t := time.Unix(unixTimestamp, 0)
// 按默认格式打印
fmt.Println(t.Format(time.RFC3339))
}
掌握这些基本实现可确保您无论使用何种技术栈都能快速编写出稳健的时间处理逻辑。