首页/时间戳转换

时间戳转换 - Unix时间戳在线转换

页面实时滚动当前Unix时间戳,10位秒级与13位毫秒级自动识别
----------
当前毫秒时间戳 - 北京时间 --:--:--

时间戳还原为日期时间

粘贴时间戳后点转换,这里会同时给出北京时间与UTC两种结果

日期时间生成时间戳

选好日期时间再点按钮,即按设备本地时区(北京时间)生成对应时间戳

关于Unix时间戳的基础知识

Unix时间戳又称Unix Epoch或POSIX时间,是工程界约定俗成的计时坐标:以1970年1月1日00:00:00 UTC这个"纪元"为零点,到目标时刻累计流过的秒数,闰秒忽略不计。因为它只是一个普通整数,比较大小、排序检索、跨时区换算都不需要额外历法知识,所以数据库存储、API接口字段、日志时间列、缓存过期策略等场合几乎都靠它标记时刻。

时间戳有两种常见精度:10位秒级,比如PHP的time()返回值;13位毫秒级,比如JavaScript的Date.now()返回值。Java与前端生态习惯毫秒,PHP、Python、MySQL则默认秒,两套体系对接时一旦混用,日期会整整偏离1000倍,这是联调中最典型的坑。把数值粘进本页输入框,工具按位数自动判别精度,省去手动换算的麻烦。

时间戳天然与时区解耦:不论服务器在东京还是纽约,同一瞬间生成的Unix时间戳完全一致,时区只是把数字"翻译"成可读时间的显示层概念。因此多时区系统的最佳实践是统一落库UTC时间戳,展示时再换算成北京时间(UTC+8)等当地时刻,从源头杜绝时区错乱。

2038年问题值得了解:老系统若用32位有符号整数存放秒级时间戳,上限止步于2038年1月19日03:14:07 UTC,再往后数值溢出变负。如今64位环境早已不受此限,但维护陈旧嵌入式设备或兼容老协议时,这个期限仍要留心。

常用语言取当前时间戳的写法

PHP: time(); // 10位秒 round(microtime(true)*1000); // 13位毫秒
JavaScript: Math.floor(Date.now()/1000); // 10位秒 Date.now(); // 13位毫秒
Python: import time int(time.time()) // 10位秒 int(time.time()*1000) // 13位毫秒
Java: System.currentTimeMillis()/1000 // 10位秒 System.currentTimeMillis() // 13位毫秒
MySQL: UNIX_TIMESTAMP(); // 10位秒 FROM_UNIXTIME(1760000000); // 时间戳转日期
Go: time.Now().Unix() // 10位秒 time.Now().UnixMilli() // 13位毫秒

时间戳常见问答

拿到一串数字,怎么判断是秒还是毫秒?
数位数最直观:10位即秒,13位即毫秒;9位或更短的往往是早期秒级记录,16位则到了微秒级。本页按输入位数自动判别,不必手动切换。
转换出来的日期差了8小时是怎么回事?
这不是算错,而是时区口径不同:时间戳本身不带时区,差8小时通常意味着一方按UTC展示、另一方按北京时间(UTC+8)理解。本页把两种结果同时列出,对照即可核实。
支付平台接口要的时间戳是什么规格?
微信、支付宝等主流平台的签名参数一般要求10位秒级时间戳,取值以服务器系统时钟为准。接入前可先在本页核对服务器时间与标准北京时间是否对齐,避免签名过期类报错。
时间戳的表示范围有多大?
32位环境的秒级时间戳封顶于2038年1月19日;64位环境下上限远在约2.9亿年之后,实际可视为无限制,毫秒级同样足够长期使用。

更多时间工具