Unix时间戳转换器

将Unix时间戳(纪元时间)转换为可读日期,反之亦然。 支持秒和毫秒。适用于所有时区。 开发者和系统管理员的必备工具。

↔️双向
🌍所有时区
即时转换

Unix Time Converter

How to use:

  • Enter a Unix timestamp to convert it to human-readable date
  • Select a date and time to convert it to Unix timestamp
  • Unix time is the number of seconds since January 1, 1970 (UTC)

为什么使用Unix时间戳?

Unix时间戳是编程和系统操作的基础

💻

编程和开发

Unix时间戳与语言无关。在数据库、API和日志中以整数存储日期。无时区歧义——始终基于UTC。

🗄️

数据库存储

以整数(4或8字节)而非日期时间字符串(20+字节)存储时间戳。更快的索引和查询。

🔗

API集成

REST API经常使用Unix时间戳作为created_at、updated_at、expires_at字段。无日期格式歧义。

📊

日志分析

服务器日志、应用程序日志和系统日志经常使用Unix时间戳。更容易按时间顺序排序。

调度和定时器

Cron作业、计划任务和定时器使用Unix时间。夏令时变化自动处理。

🔐

安全和过期

会话过期、令牌有效性、缓存TTL都使用Unix时间戳。用于SSL证书、签名URL、临时访问代码。

理解Unix时间戳

什么是Unix时间?

Unix时间(也称为纪元时间或POSIX时间)是自1970年1月1日00:00:00 UTC(Unix纪元)以来经过的秒数。

示例:

  • 0 = January 1, 1970, 00:00:00 UTC
  • 1000000000 = September 9, 2001, 01:46:40 UTC
  • 1700000000 = November 14, 2023, 22:13:20 UTC

秒与毫秒

Unix时间戳(秒):10位数字。大多数Unix系统的标准。

Unix时间戳(毫秒):13位数字。JavaScript使用。

转换: 秒乘以1000得到毫秒。毫秒除以1000得到秒。

为什么是1970年?

Unix在20世纪60年代末开发。创建者出于实际原因选择1970年1月1日作为纪元:

  • 接近Unix开发时期
  • 从整数年份(1970)开始简洁且易记
  • 它成为了事实标准
  • 所有负时间戳代表1970年之前的日期

2038年问题

32位系统只能存储最大2,147,483,647秒的时间戳(2038年1月19日03:14:07 UTC)。之后,32位时间戳将溢出。

解决方案: 现代系统使用64位时间戳,将范围扩展到2920亿年。

代码中使用Unix时间戳

JavaScript / TypeScript

// Get current Unix timestamp (milliseconds)
const now = Date.now(); // 1700000000000

// Get current Unix timestamp (seconds)
const nowSeconds = Math.floor(Date.now() / 1000); // 1700000000

// Convert timestamp to Date
const date = new Date(1700000000 * 1000);
console.log(date.toISOString()); // "2023-11-14T22:13:20.000Z"

// Convert Date to timestamp
const timestamp = Math.floor(new Date('2023-11-14').getTime() / 1000);

// Format human-readable
const readable = new Date(1700000000 * 1000).toLocaleString();
console.log(readable); // "11/14/2023, 10:13:20 PM"

Python

import time
from datetime import datetime

# Get current Unix timestamp
now = time.time()  # 1700000000.123

# Convert timestamp to datetime
dt = datetime.fromtimestamp(1700000000)
print(dt)  # 2023-11-14 22:13:20

# Convert datetime to timestamp
timestamp = datetime(2023, 11, 14).timestamp()

# Format human-readable
readable = datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S')
print(readable)  # "2023-11-14 22:13:20"

PHP

// Get current Unix timestamp
$now = time(); // 1700000000

// Convert timestamp to date
$date = date('Y-m-d H:i:s', 1700000000);
echo $date; // "2023-11-14 22:13:20"

// Convert date to timestamp
$timestamp = strtotime('2023-11-14 22:13:20');

// Using DateTime
$dt = new DateTime('@1700000000');
echo $dt->format('Y-m-d H:i:s'); // "2023-11-14 22:13:20"

MySQL / SQL

-- Convert timestamp to datetime
SELECT FROM_UNIXTIME(1700000000);
-- Result: '2023-11-14 22:13:20'

-- Convert datetime to timestamp
SELECT UNIX_TIMESTAMP('2023-11-14 22:13:20');
-- Result: 1700000000

-- Get current timestamp
SELECT UNIX_TIMESTAMP();

-- Query with timestamp
SELECT * FROM logs 
WHERE created_at > 1700000000;

常见问题

什么是Unix时间戳?

Unix时间戳是自1970年1月1日00:00:00 UTC(Unix纪元)以来经过的秒数(或毫秒数)。它是表示特定时刻的简单整数,与时区无关。

为什么使用Unix时间戳?

Unix时间戳与语言无关、与时区无关、易于比较和排序、存储紧凑,并且便于进行算术运算。

秒和毫秒有什么区别?

以秒为单位的Unix时间戳有10位数字(例如1700000000)。毫秒有13位数字(例如1700000000000)并提供更高的精度。JavaScript默认使用毫秒。

如何获取当前Unix时间戳?

JavaScript: Math.floor(Date.now() / 1000)。Python: time.time()。PHP: time()。Bash: date +%s。

Unix时间戳可以表示1970年之前的日期吗?

可以!负的Unix时间戳代表1970年1月1日之前的日期。例如,-86400代表1969年12月31日。

如何处理Unix时间戳的时区?

Unix时间戳始终是UTC。转换为人类可读格式时指定时区。以UTC存储,显示时转换为本地时区。

© 2026 DevToolbox. 保留所有权利。