Unix 时间戳 ↔ 日期时间 · 本地计算 · 秒/毫秒 v2025.02.08
自动识别输入格式,支持10位/13位时间戳或标准日期字符串
一键获取常用时间点,支持自定义时间偏移
转换结果一键复制,同时提供秒级和毫秒级时间戳
当前时间实时显示,可直接使用进行转换
Unix时间戳(Unix Timestamp),也称为POSIX时间戳或Epoch时间,是从1970年1月1日 00:00:00 UTC(协调世界时)开始所经过的秒数,不包括闰秒。这个时间点被称为"Unix纪元"(Unix Epoch)。
Unix时间戳的概念最早出现在1970年代,由Unix操作系统的开发者提出。选择1970年1月1日作为起始点是因为这是Unix系统诞生的时间。如今,Unix时间戳已经成为计算机系统中表示时间的标准方式,被广泛应用于各种编程语言、数据库系统和网络协议中。
Unix时间戳有两种常见格式:
1698380645,表示从1970年1月1日00:00:00 UTC到指定时间的秒数1698380645000,表示从1970年1月1日00:00:00 UTC到指定时间的毫秒数毫秒级时间戳在JavaScript、Java等语言中更为常用,因为它提供了更高的时间精度,适合需要精确计时的应用场景。
如果您有一个Unix时间戳,想要查看对应的日期时间:
1698380645,转换结果为 2023-10-27 15:04:05
如果您有一个日期时间,想要转换为Unix时间戳:
2023-10-27 15:04:05 或 2023/10/27 15:04:052023-10-27 15:04:05,转换结果为秒级时间戳 1698380645
工具提供了多个快捷按钮,方便您快速获取常用时间点:
点击这些快捷按钮后,系统会自动填充对应的时间戳,您可以直接进行转换或进一步调整。
工具会自动保存您的转换历史记录,方便您:
点击历史记录中的任意一条,即可自动填充到输入框进行新的转换。
在开发过程中,系统日志通常使用Unix时间戳记录事件发生的时间。当您需要分析日志时,可以使用本工具将时间戳转换为可读的日期时间格式,快速定位问题发生的时间点。
1698380645,使用工具转换后得知是 2023-10-27 15:04:05,正好是用户反馈问题的时间。
许多数据库系统使用Unix时间戳存储时间数据。当您需要查询特定时间范围的数据时,可以使用本工具将日期转换为时间戳,然后在SQL查询中使用。
2023-10-27 00:00:00 转换为 1698336000,然后在SQL中使用 WHERE timestamp >= 1698336000。
在开发RESTful API时,时间戳是常用的参数格式。使用本工具可以快速生成测试用的时间戳,或者将API返回的时间戳转换为可读格式进行验证。
在设置缓存过期时间时,通常需要计算未来的某个时间点。使用本工具可以快速计算并获取对应的时间戳,用于设置缓存的过期时间。
Unix时间戳是UTC时间,不受时区影响。在处理跨时区应用时,可以先将本地时间转换为时间戳,然后在不同时区中统一处理。
以下是在不同编程语言中处理Unix时间戳的常用方法:
// 获取当前时间戳(毫秒)
const timestamp = Date.now(); // 1698380645000
// 时间戳转日期
const date = new Date(1698380645000);
console.log(date.toLocaleString('zh-CN')); // 2023/10/27 15:04:05
// 日期转时间戳
const timestamp2 = new Date('2023-10-27 15:04:05').getTime();
// 秒级时间戳
const seconds = Math.floor(Date.now() / 1000); // 1698380645
import time
from datetime import datetime
# 获取当前时间戳(秒)
timestamp = int(time.time()) # 1698380645
# 时间戳转日期
date = datetime.fromtimestamp(1698380645)
print(date.strftime('%Y-%m-%d %H:%M:%S')) # 2023-10-27 15:04:05
# 日期转时间戳
timestamp2 = int(datetime.strptime('2023-10-27 15:04:05', '%Y-%m-%d %H:%M:%S').timestamp())
# 毫秒级时间戳
timestamp_ms = int(time.time() * 1000) # 1698380645000
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
// 获取当前时间戳(毫秒)
long timestamp = System.currentTimeMillis(); // 1698380645000
// 时间戳转日期
LocalDateTime date = LocalDateTime.ofInstant(
Instant.ofEpochMilli(1698380645000L),
ZoneId.systemDefault()
);
// 日期转时间戳
long timestamp2 = LocalDateTime.parse("2023-10-27T15:04:05")
.atZone(ZoneId.systemDefault())
.toInstant()
.toEpochMilli();
// 秒级时间戳
long seconds = System.currentTimeMillis() / 1000; // 1698380645
// 获取当前时间戳(秒)
$timestamp = time(); // 1698380645
// 时间戳转日期
$date = date('Y-m-d H:i:s', 1698380645); // 2023-10-27 15:04:05
// 日期转时间戳
$timestamp2 = strtotime('2023-10-27 15:04:05');
// 毫秒级时间戳
$timestamp_ms = round(microtime(true) * 1000); // 1698380645000
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间戳(秒)
timestamp := time.Now().Unix() // 1698380645
// 时间戳转日期
date := time.Unix(1698380645, 0)
fmt.Println(date.Format("2006-01-02 15:04:05")) // 2023-10-27 15:04:05
// 日期转时间戳
t, _ := time.Parse("2006-01-02 15:04:05", "2023-10-27 15:04:05")
timestamp2 := t.Unix()
// 毫秒级时间戳
timestamp_ms := time.Now().UnixNano() / 1e6 // 1698380645000
}
Unix时间戳是从1970年1月1日 00:00:00 UTC开始所经过的秒数(或毫秒数)。它是计算机系统中表示时间的标准方式,不受时区影响,便于计算和存储。
10位时间戳是秒级时间戳,表示从1970年1月1日开始的秒数;13位时间戳是毫秒级时间戳,表示从1970年1月1日开始的毫秒数。13位时间戳 = 10位时间戳 × 1000。
理论上,32位整数表示的时间戳会在2038年1月19日溢出(2038问题)。但现代系统通常使用64位整数,可以表示到292,277,026,596年,完全不用担心过期问题。
Unix时间戳是基于UTC(协调世界时)的,不受时区影响。但在转换为日期时间时,可以根据需要显示为本地时间或UTC时间。
直接相减即可。例如:1698380645 - 1698294245 = 86400(秒),表示相差1天(86400秒)。如果是毫秒级时间戳,差值也是毫秒数。
JavaScript的Date对象内部使用毫秒级时间戳,这样可以提供更高的时间精度,适合需要精确计时的应用场景,如动画、游戏等。
Unix时间戳不包括闰秒。虽然UTC时间会插入闰秒,但Unix时间戳是连续递增的,不会因为闰秒而跳跃。这对于需要精确时间间隔计算的场景很重要。
可以使用INTEGER或BIGINT类型存储秒级或毫秒级时间戳。MySQL可以使用TIMESTAMP类型,PostgreSQL可以使用BIGINT或TIMESTAMP类型。
本工具支持多种日期格式,包括:2023-10-27 15:04:05、2023/10/27 15:04:05、2023-10-27等常见格式。系统会自动识别并转换。
转换历史记录保存在浏览器的本地存储中,只要不清除浏览器数据,记录会一直保存。您也可以随时点击"清空"按钮清除历史记录。
本工具默认使用系统时区进行转换。Unix时间戳本身是UTC时间,转换为日期时会根据您的系统时区显示。如需特定时区,可以在转换后手动调整。
请检查输入的时间戳位数是否正确(10位或13位),以及日期格式是否符合要求。如果问题仍然存在,可能是时区设置导致的差异。
可以。负数时间戳表示1970年1月1日之前的时间。例如,-86400表示1969年12月31日 00:00:00 UTC。
在RESTful API中,时间戳通常作为查询参数或请求体的一部分。例如:/api/events?start_time=1698380645&end_time=1698467045。建议使用秒级时间戳以保持兼容性。
是的,本工具完全免费使用,无需注册,所有转换操作都在浏览器本地完成,不会上传任何数据到服务器,保护您的隐私安全。