时间格式化速查

本地处理
  • 打赏支持
  • 分享链接
  • 反馈建议
用百分号加字母表示占位符,例如 %Y-%m-%d %H:%M:%S。想验证某个固定时刻的格式结果,把基准时间改成目标时间即可——排查「差一天」这类问题时特别有用。

工具说明

时间格式化最怕的不是写不出来,而是写错了却看不出来:%m 与 %M 一个是月一个是分、%y 是两位年 %Y 是四位年,这类占位符差一个字母就会在生产环境输出错误时间。本工具让你一边写一边看结果,把猜测变成验证。

最常混淆的几组占位符

  • %m 与 %M:小写 m 是月份,大写 M 是分钟。写反了会得到看起来合理但完全错误的时间。
  • %y 与 %Y:两位年与四位年。用于对外展示时建议一律用四位年,避免跨世纪歧义。
  • %d 与 %e:都是日,区别是 %d 补零、%e 不补零。日期对齐排版用 %d,自然语言展示用 %e 更自然。
  • %H 与 %I:24 小时制与 12 小时制。用 %I 时通常要配 %p 表示上午下午。
  • %j:一年中的第几天,从 001 开始。年度报表、进度跟踪常用。

时区相关要特别小心

%z 输出的是时区偏移(如 +0800),%Z 输出时区名称。同一个时间戳在不同时区格式化出来的结果不同,服务器时区与用户时区不一致是「差一天」问题最常见的根因。排查时的正确做法是:先确认时间戳本身是否正确,再看格式化时用的时区是什么。

Python 与 JavaScript 的差异

Python 的 strftime 有一批自定义占位符(如补零方式可调的写法),而 JavaScript 原生没有 strftime,通常靠 moment 或 dayjs 的 format 方法,用的是 YYYY、MM、DD 这类连续字母标记,字母数量决定补零与完整度。切换参照体系可以看到两套写法的对照。

你可能还想问

为什么格式化出来的日期和我预期差一天?

超过九成的可能是时区问题。时间戳本身是全球统一的,但格式化成本地时间时依赖运行环境的时区设置。服务器通常跑在 UTC 时区,用户在东八区,两者相差 8 小时——晚上 8 点之后的时间戳在 UTC 下就会被格式化成前一天。排查顺序是:先打印原始时间戳确认数值正确,再检查格式化时用的时区。

%m 和 %M 到底哪个是月哪个是分?

小写的 %m 是月份,大写的 %M 是分钟。可以这样记:月是 bigger 概念,习惯上放在前面,而格式化串里月通常写在日期部分,所以用了小写;分钟属于时间部分,用了大写。这个规则不通用,但用在本工具上可以快速建立直觉——写的时候看预览结果最保险。

一年中的第几天怎么表示?

用 %j,输出三位数并从 001 开始。注意它不受月份影响,跨月计算时无需自己累加各月天数。反过来,从第几天反推日期需要走日期计算,可以直接用站内的日期计算器。

周数 %U 和 %W 有什么区别?

两者都表示一年中的第几周,差别在于把一周的第一天算作星期几:%U 以周日为一周开始,%W 以周一为一周开始。这也导致年初几天的归属不同。做周报、周维度统计时,务必与团队的周起始日约定保持一致,否则会出现同一段时间被算进不同周的情况。

相关工具

编程开发
CSS Flexbox生成器

CSS Flexbox生成器 - 可视化配置flex-direction、justify-content、align-items等属性,实时预览生成CSS代码

编程开发
JSON 转实体类

在线把 JSON 转换成实体类代码,支持 Java、Go、Python、PHP、C# 五种语言,自动识别嵌套对象与数组并生成对应的类,Java 可选 Jackson 或 Gson 注解,Go 自动带 json 标签。纯浏览器本地转换,接口数据不外传。

编程开发
.gitignore生成器

.gitignore 生成器:按语言、框架、编辑器、操作系统与项目类型勾选,自动合并去重生成规范的 .gitignore 文件,覆盖 Node、Python、Java、Go、Rust、PHP、Vue、Django、Spring 等主流组合,并附常用排除规则说明。

编程开发
CSS贝塞尔曲线编辑器

可视化编辑cubic-bezier缓动曲线,拖拽控制点实时预览动画效果,内置常用预设,一键复制transition代码

编程开发
Cron表达式生成器

在线Cron表达式生成器,支持5字段/6字段(秒级)双模式,可视化点击选值,实时预览表达式,下一次执行时间计算,常用预设一键导入,中文语义解释

编程开发
curl转代码

将curl命令一键转换为Python、JavaScript、Node.js、PHP、Go、Java、C#、Ruby等多语言HTTP请求代码,支持Header/Body/认证解析,本地运行

编程开发
时间戳转换

时间戳转换是一款免费的在线Unix时间戳与日期时间互转工具,支持毫秒级精度和多种日期格式

编程开发
JSON转TypeScript

将JSON数据转换为TypeScript接口定义,支持嵌套对象、数组、联合类型,自动推断字段类型。