
在软件中处理日期和时间
日期和时间处理在软件开发中以其复杂性著称。时区、夏令时、闰年、不同的日历系统以及不一致的格式标准,使得日期成为编程中最容易出错的领域之一。
一个好的日期/时间转换工具可以帮助开发者和数据专业人员快速在格式、时区和表示法之间进行转换,而无需记住每一个标准。

Unix 时间戳
Unix 时间戳(也称为 epoch 时间或 POSIX 时间)是自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来经过的秒数。这是 Unix/Linux 系统中的基本时间表示,并广泛用于数据库、API 和日志中。
示例:
0= 1970-01-01 00:00:00 UTC1000000000= 2001-09-09 01:46:40 UTC1700000000= 2023-11-14 22:13:20 UTC
毫秒时间戳在 JavaScript 中很常见(Date.now() 返回毫秒)。Python 的 time.time() 返回带小数精度的秒数。
ISO 8601 格式
ISO 8601 是日期和时间表示的国际标准:
2024-01-15T14:30:45Z (UTC)
2024-01-15T14:30:45+05:30 (UTC+5:30, 印度)
2024-01-15T14:30:45-08:00 (UTC-8, 美国太平洋)
2024-01-15T14:30:45.123Z (带毫秒)
2024-01-15 (仅日期)
14:30:45 (仅时间)
ISO 8601 是以下场景的推荐格式:
- API 请求/响应体
- 数据库存储
- 日志文件
- 系统间的数据交换
常见日期格式
不同地区和系统使用不同的日期格式:
| 格式 | 示例 | 地区/系统 |
|---|---|---|
| YYYY-MM-DD | 2024-01-15 | ISO 8601, 数据库 |
| MM/DD/YYYY | 01/15/2024 | 美国 |
| DD/MM/YYYY | 15/01/2024 | 英国、欧洲、澳大利亚 |
| DD.MM.YYYY | 15.01.2024 | 德国、东欧 |
| YYYY年MM月DD日 | 2024年01月15日 | 日本/中国 (CJK) |
| RFC 2822 | Mon, 15 Jan 2024 14:30:45 +0000 | 电子邮件、HTTP 头 |

时区与 UTC
UTC(协调世界时) 是主要的时间标准。所有其他时区都定义为相对于 UTC 的偏移量。
常见时区偏移量:
- UTC+0: 英国(冬季)、西欧
- UTC+1 到 UTC+2: 中欧/东欧
- UTC+5:30: 印度 (IST)
- UTC+8: 中国 (CST)、新加坡
- UTC+9: 日本 (JST)
- UTC-5: 美国东部 (EST)
- UTC-8: 美国太平洋 (PST)
夏令时 (DST) 使时区偏移量复杂化。许多地区会按季节将时钟调整 1 小时。因此,请以 UTC 存储时间戳,仅在显示时转换为本地时间。
日期运算
常见的日期计算:
- 持续时间:两个时间戳之间的差值(天、小时、分钟)
- 日期加法:给一个日期加上 N 天/月/年
- 星期几:确定某个日期是星期几
- 季度:某个日期属于哪个财务/日历季度
- 周数:ISO 周数
使用日期编程

JavaScript
const now = new Date();
const timestamp = Date.now(); // 自纪元以来的毫秒数
const isoString = now.toISOString(); // "2024-01-15T14:30:45.123Z"
// 使用 Temporal API 的现代方法(Stage 3)
const datetime = Temporal.Now.plainDateTimeISO();
Python
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
timestamp = now.timestamp() # 自纪元以来的秒数
iso_string = now.isoformat()
使用日期时间转换工具
我们的工具:
- 输入任何日期格式 — Unix 时间戳、ISO 8601 或常见的本地格式
- 转换为所有格式 — 以多种表示形式查看同一时刻
- 时区转换 — 在任何两个 IANA 时区之间转换
- 相对时间 — 显示“3 天前”或“2 小时后”等上下文信息
- DST 感知 — 正确处理夏令时转换
- 复制任何格式 — 一键复制任何表示形式
用于调试时间戳问题、在 API 格式之间转换,以及了解给定时刻在不同时区中的显示方式。