日期转 Unix 时间戳
快速示例
点击下方按钮,可快速填入常见日期进行转换:
各语言日期转时间戳示例
JavaScript
// 将日期字符串转为 Unix 时间戳(秒)
const dateStr = '2024-01-01 00:00:00';
const timestamp = Math.floor(new Date(dateStr).getTime() / 1000);
console.log(timestamp); // 1704067200(依时区而异)
// 指定 UTC 时区
const utcTimestamp = Math.floor(new Date('2024-01-01T00:00:00Z').getTime() / 1000);
console.log(utcTimestamp); // 1704067200
Python
from datetime import datetime, timezone
# 本地时间转时间戳
dt = datetime.strptime('2024-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
timestamp = int(dt.timestamp())
print(timestamp)
# UTC 时间转时间戳
dt_utc = datetime(2024, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
timestamp_utc = int(dt_utc.timestamp())
print(timestamp_utc) # 1704067200
PHP
<?php
// 日期字符串转时间戳
$timestamp = strtotime('2024-01-01 00:00:00');
echo $timestamp;
// 使用 DateTime 对象
$dt = new DateTime('2024-01-01 00:00:00', new DateTimeZone('UTC'));
echo $dt->getTimestamp(); // 1704067200
?>
MySQL
-- 日期转 Unix 时间戳
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');
-- 结果:1704067200(依服务器时区而异)
-- 指定 UTC 时区转换
SELECT UNIX_TIMESTAMP(CONVERT_TZ('2024-01-01 00:00:00', '+08:00', '+00:00'));
支持的日期格式说明
本工具支持多种常见日期格式输入,系统会自动解析您输入的日期字符串。以下是支持的格式示例:
ISO 8601 格式
ISO 8601 是国际标准的日期时间表示法,广泛用于程序开发与数据交换:
| 格式 | 示例 | 说明 |
|---|---|---|
YYYY-MM-DDTHH:mm:ssZ |
2024-01-01T00:00:00Z | UTC 时间,Z 表示零时区 |
YYYY-MM-DDTHH:mm:ss+HH:MM |
2024-01-01T08:00:00+08:00 | 含时区偏移 |
YYYY-MM-DD |
2024-01-01 | 仅日期,时间默认为 00:00:00 |
常见格式
| 格式 | 示例 |
|---|---|
YYYY-MM-DD HH:mm:ss |
2024-01-01 00:00:00 |
YYYY/MM/DD HH:mm:ss |
2024/01/01 00:00:00 |
MM/DD/YYYY |
01/01/2024 |
YYYY年MM月DD日 |
2024年01月01日 |
建议使用 YYYY-MM-DD HH:mm:ss 格式以获得最佳兼容性。若输入仅包含日期而无时间,系统将自动补充为当日 00:00:00。
常见问题 (FAQ)
输入日期时应该使用什么格式?
建议使用 YYYY-MM-DD HH:mm:ss 格式,例如 2024-01-01 00:00:00。此格式兼容性最佳,不会因地区设置不同而产生歧义。您也可以使用 ISO 8601 格式(如 2024-01-01T00:00:00Z)或仅输入日期部分(如 2024-01-01),时间将默认为 00:00:00。
为什么同一个日期在不同时区会得到不同的时间戳?
Unix 时间戳代表的是从 1970-01-01 00:00:00 UTC 起算的秒数,是一个绝对时间点。同一个日期字符串(例如 2024-01-01 00:00:00)在不同时区代表的是不同的时间点。例如,北京时间(UTC+8)的 2024-01-01 00:00:00 比 UTC 的 2024-01-01 00:00:00 早了 8 小时,因此产生的时间戳会小 28800(8 x 3600 秒)。
UTC 和本地时间有什么不同?
UTC(协调世界时)是全球统一的时间标准,不受夏令时影响。本地时间则是您所在时区对应的时间,例如中国标准时间(CST)为 UTC+8。在转换日期为时间戳时,选择正确的时区非常重要,否则结果会有偏差。若您需要与其他系统交换数据,建议统一使用 UTC。
如何在 Excel 中将日期转换为时间戳?
在 Excel 中,您可以使用以下公式将日期单元格转换为 Unix 时间戳:
=(A1 - DATE(1970,1,1)) * 86400
其中 A1 是包含日期的单元格。此公式计算的是 UTC 时间的时间戳。若您的日期是本地时间,需再减去时区偏移秒数。例如北京时间(UTC+8)需减去 28800:
=(A1 - DATE(1970,1,1)) * 86400 - 28800
毫秒级时间戳和秒级时间戳有什么区别?
秒级时间戳是标准 Unix 时间戳,通常为 10 位数字(例如 1704067200)。毫秒级时间戳则精确到千分之一秒,通常为 13 位数字(例如 1704067200000)。JavaScript 的 Date.now() 返回的就是毫秒级时间戳。两者之间的换算为:毫秒时间戳 = 秒时间戳 x 1000。