[{"data":1,"prerenderedAt":497},["ShallowReactive",2],{"blog-post-zh-unix-timestamp-converter-guide":3},{"id":4,"title":5,"author":6,"body":7,"description":480,"draft":481,"extension":482,"lang":483,"meta":484,"navigation":485,"path":486,"pubDate":487,"relatedTool":488,"seo":489,"stem":490,"tags":491,"__hash__":496},"blog\u002Fblog\u002Fzh-unix-timestamp-converter-guide.mdx","Unix 时间戳转换器：是什么以及如何使用","ujiffy team",{"type":8,"value":9,"toc":470},"minimark",[10,24,27,32,46,53,62,66,69,91,102,108,111,115,122,128,138,152,158,164,167,170,250,253,258,269,273,278,281,335,338,361,366,368,405,407,422,425,428,445,448,451,454,463,466],[11,12,13,14,18,19,23],"p",{},"翻日志的时候，你有没有遇到过像 ",[15,16,17],"code",{},"1715760000"," 这样的数字？乍看像是乱码，但其实它精确地表示了某一个时间点——这就是 ",[20,21,22],"strong",{},"Unix 时间戳","。",[11,25,26],{},"这篇文章帮你彻底搞清楚 Unix 时间戳是什么、开发者为什么喜欢用它，以及如何快速将时间戳转换成你能看懂的日期。",[28,29,31],"h2",{"id":30},"unix-时间戳是什么","Unix 时间戳是什么？",[11,33,34,35,38,39,42,43,23],{},"Unix 时间戳（也叫 ",[20,36,37],{},"epoch time","）是从 ",[20,40,41],{},"1970 年 1 月 1 日 00:00:00 UTC"," 开始，累计经过的",[20,44,45],{},"秒数",[11,47,48,49,52],{},"这个起点——1970 年元旦的 UTC 午夜——叫做 ",[20,50,51],{},"Unix 纪元（Unix Epoch）","，是随 Unix 操作系统诞生而定下的约定，沿用至今。",[11,54,55,56,58,59,23],{},"所以 ",[15,57,17],{}," 的意思是：从 Unix 纪元开始，过了 17 亿 1576 万秒——换算成日历时间，就是 ",[20,60,61],{},"2025 年 5 月 15 日 08:00:00 UTC",[28,63,65],{"id":64},"秒级-vs-毫秒级一个常见陷阱","秒级 vs 毫秒级，一个常见陷阱",[11,67,68],{},"不同系统的时间戳精度不一样，这是一个很容易踩坑的地方：",[70,71,72,82],"ul",{},[73,74,75,78,79,81],"li",{},[20,76,77],{},"秒级时间戳","：",[15,80,17],{},"（10位数字）",[73,83,84,78,87,90],{},[20,85,86],{},"毫秒级时间戳",[15,88,89],{},"1715760000000","（13位数字）",[11,92,93,94,97,98,101],{},"JavaScript 的 ",[15,95,96],{},"Date.now()"," 返回的是毫秒级，很多数据库和 API 也用毫秒；而 Python 的 ",[15,99,100],{},"time.time()"," 返回秒级浮点数。",[11,103,104,107],{},[20,105,106],{},"快速判断法则","：10 位数字 → 秒级；13 位数字 → 毫秒级。",[11,109,110],{},"如果把毫秒级时间戳当秒级处理，算出来的日期会是 5 万多年后——这种 Bug 不好找，提前了解能省去不少麻烦。",[28,112,114],{"id":113},"开发者为什么喜欢用时间戳","开发者为什么喜欢用时间戳？",[11,116,117,118,121],{},"明明可以存 ",[15,119,120],{},"\"2025-05-15 08:00:00\""," 这种字符串，为什么要用一个大数字？原因是时间戳在工程上有几个明显优势：",[11,123,124,127],{},[20,125,126],{},"与时区无关","。时间戳永远是 UTC 基准，时区的转换在展示时再做。这从根本上消除了\"数据库存了什么时区\"、\"服务器在哪里\"这类问题，时区 Bug 少太多了。",[11,129,130,133,134,137],{},[20,131,132],{},"计算超方便","。判断某事件是否发生在 7 天前？直接做减法：",[15,135,136],{},"now - timestamp > 7 * 24 * 3600","。不需要解析字符串，不需要处理月份天数不同的边界情况。",[11,139,140,143,144,147,148,151],{},[20,141,142],{},"各语言、数据库通用","。你不需要担心 ",[15,145,146],{},"MM\u002FDD\u002FYYYY"," 还是 ",[15,149,150],{},"DD-MM-YYYY"," 的格式差异，整数就是整数，人人都认。",[11,153,154,157],{},[20,155,156],{},"排序友好","。时间戳本身就是整数，按数字大小排序就是按时间顺序排序，无需特殊处理。",[11,159,160,163],{},[20,161,162],{},"存储紧凑","。一个整数比一段日期字符串占用的存储空间少，在大规模数据场景下有意义。",[28,165,166],{"id":166},"常用时间戳参考值",[11,168,169],{},"记住几个锚点数字，遇到时间戳时能快速心算：",[171,172,173,186],"table",{},[174,175,176],"thead",{},[177,178,179,183],"tr",{},[180,181,182],"th",{},"日期",[180,184,185],{},"Unix 时间戳（秒）",[187,188,189,200,210,220,230,240],"tbody",{},[177,190,191,195],{},[192,193,194],"td",{},"2000 年 1 月 1 日（Y2K）",[192,196,197],{},[15,198,199],{},"946684800",[177,201,202,205],{},[192,203,204],{},"2010 年 1 月 1 日",[192,206,207],{},[15,208,209],{},"1262304000",[177,211,212,215],{},[192,213,214],{},"2020 年 1 月 1 日",[192,216,217],{},[15,218,219],{},"1577836800",[177,221,222,225],{},[192,223,224],{},"2024 年 1 月 1 日",[192,226,227],{},[15,228,229],{},"1704067200",[177,231,232,235],{},[192,233,234],{},"2025 年 1 月 1 日",[192,236,237],{},[15,238,239],{},"1735689600",[177,241,242,245],{},[192,243,244],{},"2030 年 1 月 1 日",[192,246,247],{},[15,248,249],{},"1893456000",[11,251,252],{},"看到一个约 17 亿的时间戳，大约是 2023–2024 年；约 19 亿则是 2030 年代。这些参考值能帮你一眼判断时间戳是否合理，也能快速发现秒级\u002F毫秒级搞混的问题。",[254,255,257],"h3",{"id":256},"附2038-年问题","附：2038 年问题",[11,259,260,261,264,265,268],{},"如果你用 32 位整数存储时间戳，它会在 ",[20,262,263],{},"2038 年 1 月 19 日 03:14:07 UTC","（时间戳 ",[15,266,267],{},"2147483647","）溢出，之后变成负数——这就是\"2038 年问题\"，类似当年的 Y2K。现代系统普遍使用 64 位时间戳，可以撑到几千亿年后，暂时不用担心。",[28,270,272],{"id":271},"代码中怎么转换","代码中怎么转换？",[11,274,275],{},[20,276,277],{},"时间戳 → 可读日期",[11,279,280],{},"JavaScript：",[282,283,288],"pre",{"className":284,"code":285,"language":286,"meta":287,"style":287},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","new Date(1715760000 * 1000).toISOString()\n\u002F\u002F \"2025-05-15T08:00:00.000Z\"\n","js","",[15,289,290,328],{"__ignoreMap":287},[291,292,295,299,303,307,310,313,316,319,322,325],"span",{"class":293,"line":294},"line",1,[291,296,298],{"class":297},"sMK4o","new",[291,300,302],{"class":301},"s2Zo4"," Date",[291,304,306],{"class":305},"sTEyZ","(",[291,308,17],{"class":309},"sbssI",[291,311,312],{"class":297}," *",[291,314,315],{"class":309}," 1000",[291,317,318],{"class":305},")",[291,320,321],{"class":297},".",[291,323,324],{"class":301},"toISOString",[291,326,327],{"class":305},"()\n",[291,329,331],{"class":293,"line":330},2,[291,332,334],{"class":333},"sHwdD","\u002F\u002F \"2025-05-15T08:00:00.000Z\"\n",[11,336,337],{},"Python：",[282,339,343],{"className":340,"code":341,"language":342,"meta":287,"style":287},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import datetime\ndatetime.datetime.utcfromtimestamp(1715760000)\n# datetime.datetime(2025, 5, 15, 8, 0)\n","python",[15,344,345,350,355],{"__ignoreMap":287},[291,346,347],{"class":293,"line":294},[291,348,349],{},"import datetime\n",[291,351,352],{"class":293,"line":330},[291,353,354],{},"datetime.datetime.utcfromtimestamp(1715760000)\n",[291,356,358],{"class":293,"line":357},3,[291,359,360],{},"# datetime.datetime(2025, 5, 15, 8, 0)\n",[11,362,363],{},[20,364,365],{},"当前时间 → 时间戳",[11,367,280],{},[282,369,371],{"className":284,"code":370,"language":286,"meta":287,"style":287},"Math.floor(Date.now() \u002F 1000)  \u002F\u002F 当前秒级时间戳\n",[15,372,373],{"__ignoreMap":287},[291,374,375,378,380,383,386,388,391,394,397,399,402],{"class":293,"line":294},[291,376,377],{"class":305},"Math",[291,379,321],{"class":297},[291,381,382],{"class":301},"floor",[291,384,385],{"class":305},"(Date",[291,387,321],{"class":297},[291,389,390],{"class":301},"now",[291,392,393],{"class":305},"() ",[291,395,396],{"class":297},"\u002F",[291,398,315],{"class":309},[291,400,401],{"class":305},")  ",[291,403,404],{"class":333},"\u002F\u002F 当前秒级时间戳\n",[11,406,337],{},[282,408,410],{"className":340,"code":409,"language":342,"meta":287,"style":287},"import time\nint(time.time())  # 当前秒级时间戳\n",[15,411,412,417],{"__ignoreMap":287},[291,413,414],{"class":293,"line":294},[291,415,416],{},"import time\n",[291,418,419],{"class":293,"line":330},[291,420,421],{},"int(time.time())  # 当前秒级时间戳\n",[11,423,424],{},"代码当然可以做到，但如果你只是想快速查个数字——比如看日志的时候、和同事确认某个时间点、或者手动构造测试数据——打开在线工具更快，不用开编辑器，不用跑代码。",[28,426,427],{"id":427},"在线工具的典型使用场景",[70,429,430,433,436,439,442],{},[73,431,432],{},"查看线上日志里的时间戳对应的实际时间",[73,434,435],{},"生成某个特定日期的时间戳，用于数据库查询或测试",[73,437,438],{},"确认两套系统的时间戳是否对应同一时刻",[73,440,441],{},"向非技术同事解释时间戳的含义",[73,443,444],{},"快速换算秒级和毫秒级时间戳",[11,446,447],{},"一个好的在线时间戳工具支持双向转换：输入时间戳得到日期，也可以输入日期得到时间戳，还能显示不同时区的对应时间。",[449,450],"hr",{},[11,452,453],{},"时间戳乍看抽象，理解了 epoch 的概念之后其实很简单。下次遇到一串数字，你已经知道它代表什么了。",[11,455,456],{},[457,458,460],"a",{"href":459},"\u002Fzh\u002Ftools\u002Ftimestamp-converter",[20,461,462],{},"立即使用 ujiffy 时间戳转换工具 →",[11,464,465],{},"输入时间戳秒数一键转换，或者选择日期生成对应时间戳——免费，无需注册。",[467,468,469],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":287,"searchDepth":330,"depth":330,"links":471},[472,473,474,475,478,479],{"id":30,"depth":330,"text":31},{"id":64,"depth":330,"text":65},{"id":113,"depth":330,"text":114},{"id":166,"depth":330,"text":166,"children":476},[477],{"id":256,"depth":357,"text":257},{"id":271,"depth":330,"text":272},{"id":427,"depth":330,"text":427},"对 Unix 时间戳感到困惑？了解 epoch 时间是什么、开发者为何使用它、如何将时间戳转换为可读日期。",false,"mdx","zh",{},true,"\u002Fblog\u002Fzh-unix-timestamp-converter-guide","2025-05-20","timestamp-converter",{"title":5,"description":480},"blog\u002Fzh-unix-timestamp-converter-guide",[492,493,494,495],"Unix时间戳","epoch时间","时间戳转换","开发者工具","Qfc5maBOTTQcqmwQp95k1pImf8UWANNXd8ms-q_iBnA",1778831414319]