crazycloudcc@blog:~/tools/timestamp — zsh — 80×24
--:--:--···
crazycloudcc@blog:~/tools/timestamp$ pwd
/home/crazycloudcc/blog/tools/timestamp
> cd ./tools/timestamp

~/tools / timestamp

Unix 时间戳转换

秒/毫秒时间戳与本地时间、UTC 互转。

本地计算 · 无账号

当前:秒 1792920896 · 毫秒 1792920896612

这是什么

Unix 时间戳用自 1970-01-01 UTC 起的秒或毫秒表示时间,日志与 API 里随处可见。本页在秒/毫秒戳与本地时间、UTC 文本之间转换,帮你看清数字对应哪一天几点。转换在浏览器完成,不上传数值。它解决的是「读数」与「写测试数据」,不是日历排程或提醒功能。

原理

秒级时间戳通常是 10 位左右;毫秒级多为 13 位。把毫秒误当成秒,日期会落到远未来;反过来会回到 1970 年代。显示「本地时间」时依赖浏览器时区;UTC 则始终按协调世界时。夏令时地区在换季边界可能让人困惑,核对请同时看 UTC。业务系统一般忽略闰秒。本页不做网络校时,只用你输入的数字与运行环境的时间 API。日志里若同时出现 ISO 字符串与 Unix 戳,先确认两者是否同一瞬间,再谈业务逻辑;很多「差八小时」的问题其实是时区标注缺失,而不是时间戳算错。

什么时候用

读服务端日志、核对 JWT exp、或把文案里的绝对时间换成测试用时间戳时,可少开一次搜索引擎。也适合检查自己是否把秒和毫秒写反。写 C++ chrono 示例时,把 system_clock 打出来的秒数贴进本页,能立刻看出实现是否按你期望的 epoch 与时区在说话。

示例

  • 秒 → 可读时间
    输入:1700000000
    输出:对应 UTC / 本地时间(以页面显示为准)
  • 识别毫秒长度
    输入:13 位数字
    输出:按毫秒解析;10 位通常按秒

常见错误

  • 秒与毫秒混用是最常见错误,差一千倍。
  • 只看本地时间、不看 UTC,容易在跨时区协作时对不上。
  • 日志里的时区缩写与时间戳本身是两套信息,不要混为一谈。

常见问题

用的是哪一时区?
本地时间跟随系统时区;UTC 始终为协调世界时。
支持负数时间戳吗?
1970 年之前的负值在部分环境可解析,展示可能因实现而异。
会访问网络校准时间吗?
不会。仅用输入数字与浏览器时钟 API。

C++ 打印 Unix 秒

#include <chrono>
#include <iostream>
int main() {
  using namespace std::chrono;
  auto sec = duration_cast<seconds>(system_clock::now().time_since_epoch());
  std::cout << sec.count() << "\n";
}

把输出贴进本页,核对本地/UTC 是否符合预期。注意 system_clock 是否 UTC 取决于实现,对照时以本页 UTC 行为准。写单元测试时,固定一个已知秒数比依赖「当前现在」更稳。

在 Playground 打开 · 数据只在本地处理:时间换算不离开当前标签页。本工具不保存历史查询,也不根据你的输入去访问日历或地图服务。

branch: mainposts: 12encoding: utf-8