Crontab 生成器与 Cron 表达式构建工具
在浏览器里构建、校验并解读 cron 表达式,按本地时间或 UTC 实时预览下一次运行。支持 POSIX 五字段语法、常用预设和中文描述。免费、隐私、无需注册。
中文描述
—
接下来 5 次运行
什么是 Cron 表达式?
cron 表达式是一个五字段字符串,用来定义循环排程。从左到右依次是:分(0-59)、时(0-23)、日(1-31)、月(1-12)、星期(0-6,其中 0 和 7 都表示周日)。每个字段都接受单值、列表(`1,3,5`)、区间(`1-5`)、通配符(`*` 表示任意),或步长(`*/15` 表示每 15)。五个字段的组合精确定义任务的运行时刻——比如 `0 9 * * 1-5` 可以读作「在第 0 分、第 9 时、任意日、任意月、星期一至星期五」,用中文说就是「工作日上午 9:00」。
cron 诞生于 1979 年的 Unix V7,五字段语法 40 多年来几乎未变——这本身就是对原始设计精良的最好印证。如今 cron 表达式早已超出 Unix crontab 的范畴:Kubernetes CronJob、GitHub Actions workflow、AWS EventBridge 规则、GitLab CI 定时流水线、Cloudflare Workers Cron Triggers,以及各家云的无服务器平台都接受同一套五字段语法。学会一次 cron,就掌握了在现代基础设施里安排定时任务的通用语言。
POSIX 标准定义了五个运算符:`*`(任意值)、`,`(值列表)、`-`(区间)、`/`(步长),以及月份(JAN-DEC)和星期(SUN-SAT)的命名符号。大多数实现还支持五个常用宏:`@yearly`(`0 0 1 1 *`)、`@monthly`(`0 0 1 * *`)、`@weekly`(`0 0 * * 0`)、`@daily`(`0 0 * * *`)、`@hourly`(`0 * * * *`)。Quartz 调度器(Java 库)在此基础上扩展了可选的秒字段和额外运算符(`?`、`L`、`W`、`#`)——在 Java/Spring 项目里很有用,但无法移植到标准 cron。本工具采用 POSIX 五字段标准,因为它是主流,也是你的 Linux 服务器、GitHub Actions runner 和 Kubernetes 集群真正能识别的方言。
POSIX cron 还有一个值得特别留意的细节:当「日」和「星期」都被限定(都不是 `*`)时,只要其一匹配,排程就会触发——是 OR 语义,不是 AND。因此 `0 0 1 * 5` 会在每月 1 日运行,同时也会在每个周五运行,而不是「正好是 1 日的周五」。这是 cron 最常见的意外行为;本工具的下次运行预览会直接展示排程实际触发的具体时间,让结果一目了然。部署前请务必先核对。
所有解析与下次运行计算都完全用 JavaScript 在你的浏览器里完成——表达式、排程或任何其他数据都不会发送到服务器。本工具能即时解析任意标准 POSIX cron 表达式,给出中文描述与 5 次运行预览,全程隐私。
cron 表达式与其他开发者工具关系紧密。Cron 任务调试时常常需要比对 Unix 时间戳与预期运行时刻;复杂排程也常以 JSON 配置文件的形式记录,可以用我们的 JSON 格式化工具校验。需要深入了解 OR 语义、时区陷阱以及 Linux、Kubernetes、GitHub Actions 上各种 cron 变体的具体例子,请阅读我们的 cron 排程参考指南。
# Linux crontab entry — runs every 15 minutes
*/15 * * * * /usr/local/bin/poll-api.sh
# Kubernetes CronJob — weekdays at 9:00 AM UTC
apiVersion: batch/v1
kind: CronJob
metadata:
name: daily-report
spec:
schedule: "0 9 * * 1-5"
timeZone: "UTC"
jobTemplate:
spec:
template:
spec:
containers:
- name: report
image: report-runner:1.0
restartPolicy: OnFailure
# GitHub Actions workflow — hourly
on:
schedule:
- cron: '0 * * * *'
# AWS EventBridge — first of each month
ScheduleExpression: cron(0 0 1 * ? *)
# (Note: AWS uses the Quartz 6-field form with '?' for day-of-week) 核心特性
实时 POSIX 五字段解析
严格遵循 POSIX cron 的解析器:分(0-59)、时(0-23)、日(1-31)、月(1-12 或 JAN-DEC)、星期(0-6 或 SUN-SAT,7 也接受为周日)。完整支持标准运算符(`*` `,` `-` `/`)和宏(`@yearly` `@monthly` `@weekly` `@daily` `@hourly`)。
下次运行预览(5 次)
基于你当前的本地时间,计算接下来五次运行时刻。一键在「本地」与「UTC」之间切换——在把 crontab 部署到不同时区的服务器之前,这是发现时区意外最可靠的方法。
中文描述
每个有效表达式都会生成可读的中文解释:「每 15 分钟」「工作日上午 9:00」「一月和七月每月 1 日 02:30」。让代码评审和团队交接毫不费力——不必再猜 `*/5 9-17 * * 1-5` 到底什么意思。
字段级错误提示
无效表达式会即时给出红色提示,高亮出错字段并给出具体错误:「分钟字段错误:值超出范围 [0, 59]:"60"」。再也不会等到三天后报表没跑出来才发现 crontab 静默失败。
常用排程预设按钮
11 个一键预设覆盖你真正会用到的排程:每分钟、每 5/15 分钟、每小时、每天 0 点或上午 9 点、工作日上午 9 点、每周日/周一、每月 1 日、每年第一天。点选、微调、发布。
分字段构建输入
不用背五字段的顺序——五个分别标着「分钟」「小时」「日」「月」「星期」的小输入框让你一次只编辑一个位置,不会漏值或错位。顶部完整表达式会自动重建。
正确的 POSIX OR 语义
当「日」和「星期」都被限定时,OR 规则生效——`0 0 1 * 5` 既在每月 1 日运行,也在每个周五运行。下次运行预览会在你部署之前把这件事摆在桌面上,杜绝周末意外告警。
100% 浏览器端隐私
你的 cron 表达式——往往透露着基础设施时序和内部排程模式——绝不会离开你的浏览器。不向任何服务器发送数据、不记录、不分析。你可以在浏览器 Network 面板自行验证。生产环境排程与内部系统都可放心使用。
Quartz 感知的错误提示
如果你粘贴了带 `?` `L` `W` 或 `#` 的 Quartz 表达式,解析器会提示「不支持 Quartz 运算符——请使用 POSIX 语法」,让你及时改写而不是去排查一个静默失败。Quartz 排程跑不在 Linux cron 上。
Cron 变体与调度器
Vixie cron(Linux 默认)
五字段 POSIX绝大多数 Linux 发行版的默认实现。严格遵循 POSIX,并扩展 `CRON_TZ=` 用于显式时区。日/星期 OR 语义适用。是本工具的主要目标。
BSD cron
五字段 POSIXmacOS 与 BSD 家族的默认实现。POSIX 兼容,与 vixie cron 仅有细微实现差异;绝大多数表达式行为一致。
systemd timer(OnCalendar)
日历规约,非 cronsystemd Linux 上 cron 的替代品。使用 `OnCalendar: 2026-*-* 09:00:00` 这类语法——对非循环排程更可读,但与 cron 表达式互不兼容。
Quartz Scheduler(Java/Spring)
六或七字段增加秒(必选)和年(可选)字段,外加运算符 `?`、`L`、`W`、`#`。在 Java 应用里很有用,但无法移植到 Linux cron。
AWS EventBridge
六字段 Quartz 风格,使用 `?`当只限定其一时,「日」或「星期」必须写 `?`(Quartz 约定)而不是 `*`。表达式无法直接搬到 Linux cron。
Kubernetes CronJob
五字段 POSIX + timeZone 字段POSIX 五字段排程加 `spec.timeZone`(1.27+)。比依赖 kubelet 主机时区更干净。表达式可直接从 Linux cron 迁移过来。
GitHub Actions
五字段 POSIX始终运行在 UTC。尽力而为的时间触发——负载高时可能被跳过。避免短于 15 分钟的间隔。表达式可直接从 Linux cron 迁移过来。
Cron 表达式示例
每 15 分钟
*/15 * * * *
步长运算符:分钟字段里 `*/15` 表示「从第 0 分钟开始,每 15 分钟一次」——也就是每小时的 :00、:15、:30、:45 各运行一次。是 API 轮询、缓存刷新和心跳检测最常见的间隔。
工作日上午 9:00
0 9 * * 1-5
星期字段的区间 `1-5` 表示周一到周五(1=周一,5=周五),整点 09:00 触发——适合工作时间报表、依赖夜间数据的批处理任务,以及每日站会提醒。
每月 1 日 0 点
0 0 1 * *
「日」字段为 `1`,其他较低字段均为 0。常用于月度账单、日志轮转和期末对账。「日」与「星期」只有在两者都不是 `*` 时才会互相影响——这里星期是 `*`,所以只看日期。
工作日上午 9 点到下午 5 点,每 5 分钟
*/5 9-17 * * 1-5
在不同字段上组合步长(`*/5`)与区间(`9-17`)。适合仅工作时间的监控或队列消费。总计:每小时 12 次 × 9 小时 × 5 天 = 每周 540 次。
季度任务:1 月、4 月、7 月、10 月 1 日 0 点
0 0 1 JAN,APR,JUL,OCT *
用英文缩写以逗号分隔的月份列表。适合财务结账、代码冻结评审或合规审计等季度任务。名称和数字可以混用(`1,APR,7,10` 解析结果一致),但建议统一风格以提升可读性。
POSIX OR 陷阱:每月 1 日或每个周五
0 0 1 * 5
当「日」(`1`)和「星期」(`5`)都被限定时,POSIX cron 只要其一匹配就会触发。因此这条表达式会在每月 1 日运行,同时也会在每个周五运行——并非只在「正好是 1 日的周五」运行。这是 cron 最常见的意外行为之一;下次运行预览会让结果一目了然。
每天 02:30(低峰时段)
30 2 * * *
时和分都是具体值,其他位置通配。02:00-04:00(UTC)是夜间批处理任务的事实标准,因为它与所有主要业务地区的工作时间都不冲突。配合 UTC 时区开关使用,可以确认任务落在预期时段。
宏等价:@daily
@daily
`@daily` 简写(也写作 `@midnight`)展开后等于 `0 0 * * *`——每天 0 点。其他宏:`@yearly` = `0 0 1 1 *`、`@monthly` = `0 0 1 * *`、`@weekly` = `0 0 * * 0`、`@hourly` = `0 * * * *`。宏写起来简洁,但五字段形式在不同调度器之间更通用(部分调度器不支持宏)。
如何构建 Cron 表达式
- 1
键入或粘贴 cron 表达式
在顶部输入框中输入一个五字段 cron 表达式(例如 `*/15 * * * *`)。工具会随键入实时解析与校验——有效则显示绿色对勾,无效则显示红色提示并指出出错字段。`@daily`、`@hourly` 等宏也可接受。
- 2
或微调五个字段输入
不用背字段顺序——通过标注好的输入框分别编辑「分钟」「小时」「日」「月」「星期」。顶部完整表达式会自动更新。用 `*` 表示通配,`*/N` 表示步长,`a-b` 表示区间,`1,3,5` 表示列表。
- 3
点选预设快速起步
点击任意预设按钮(每 15 分钟、工作日上午 9 点等)即可载入一个常用排程,然后再按需微调字段。11 个预设覆盖了生产环境里真正会用到的模式。
- 4
核对下次运行预览
查看接下来五次的运行时刻——切换「本地」与「UTC」确认排程在你期望的时刻触发。这是部署前发现 POSIX「日/星期」OR 陷阱最可靠的方法。
- 5
复制并粘贴到调度器
点击「复制」获取表达式。粘贴到 crontab、systemd timer、GitHub Actions 的 `cron:`、AWS EventBridge、Kubernetes CronJob 的 `schedule`,或任何兼容 cron 的调度器。别忘了确认目标调度器的时区——参见下文「最佳实践」。
常见 Cron 错误
POSIX OR 陷阱:两个「日」字段同时被限定
当「日」和「星期」都被限定时,POSIX cron 只要其一匹配就触发——并非要求同时满足。因此 `0 0 1 * 5` 会在每月 1 日运行,同时也会在每个周五运行,而不是「正好是 1 日的周五」。想要单一条件时,请在两个「日」字段里至少留一个为 `*`;或者写一个外层脚本完成 AND 判断。
# 本意:「每月第一个周五」 0 0 1-7 * 5 # 实际:每月 1 日到 7 日的所有日子,或者每个周五——两个条件都会触发
# 用外层脚本实现真正的 AND 语义 0 0 * * 5 [ $(date +\%d) -le 7 ] && /your-script # 或者放弃一个条件,接受更宽松的排程
开发与生产环境时区漂移
Linux 服务器上的 cron 排程使用系统时区,不是编写者的本地时区。把一条「上午 9:00」cron 部署到 UTC 服务器,会在美东时间凌晨 4:00 触发。请始终对照目标服务器的时区(最好是 UTC)来设计排程,并在 crontab 顶部用 `CRON_TZ=...` 显式锁定。
# 美东开发者写好后部署到 UTC 服务器 0 9 * * * /your-report.sh # 实际在 UTC 9 点触发 = 美东凌晨 4 点 —— 不是开发者的本意
# 锁定时区,或直接按 UTC 编写 CRON_TZ=America/New_York 0 9 * * * /your-report.sh
步长混淆:`*/15` 与 `15`
分钟字段里的 `*/15` 表示「从 0 开始每 15 分钟一次」(即 0、15、30、45)。单独写 `15` 则表示「只在第 15 分钟」——每小时只跑一次。初学者常把 `15` 当成「每 15 分钟」;本工具的中文描述能在部署前把这种错误暴露出来。
# 本意:每 15 分钟 15 * * * * # 实际:每小时一次,仅在第 15 分钟触发(每小时少了 3 次)
# 正确写法 */15 * * * * # 每 15 分钟:每小时的第 0、15、30、45 分钟
把六字段表达式贴给 POSIX 调度器
Quartz/Spring/node-cron 支持把秒作为可选的首位字段。但 Linux crontab、GitHub Actions、AWS EventBridge(大部分情况)和 Kubernetes CronJob 不支持——它们期望五字段。粘贴一个六字段表达式会静默打乱排程:你的「秒」会被当成「分」,「分」会被当成「时」,以此类推。
# Quartz 六字段被复制进 Linux crontab 0 0 9 * * 1-5 # Linux 解析为:分=0、时=0、日=9、月=*、星期=1-5 # = 月份匹配星期的每月 9 日 0 点 —— 完全乱了
# POSIX 五字段,去掉首位秒 0 9 * * 1-5 # = 工作日上午 9:00
「日」超出当月最大天数
cron 不会按实际月份去校验「日」。`0 0 31 2 *`(2 月 31 日)能正常解析但永远不会匹配——2 月最多 29 天。初学者以为解析器会拦截这种情况;它不会。本工具的下次运行预览会在表达式结构合法但逻辑上不可能时显示「未来 4 年内无运行计划」。
# 2 月 30 日或 31 日 —— 永远不会运行 0 0 30 2 * 0 0 31 2 * # 能解析,但永远没有排程触发
# 用脚本配合实现「2 月最后一个工作日」 0 0 28-29 2 * [ $(date -d tomorrow +\%m) = 03 ] && /your-script
把 Quartz 语法误当成 POSIX
AWS 文档、Spring 教程,以及很多 Stack Overflow 回答里展示的是带 `?`、`L`、`W` 或 `#` 的 Quartz cron 表达式,它们在 Linux crontab 上跑不起来。如果你把一个「星期」位置是 `?` 的六字段表达式复制到 Linux,解析器要么拒绝,要么悄悄解析错。本工具会识别 Quartz 运算符并解释二者的区别。
# Quartz:「每月最后一个周五」—— POSIX 无效 0 0 ? * 6L *
# 用 POSIX 外层脚本实现「最后一个周五」 0 0 25-31 * 5 /your-script # 在任意月份的 25-31 日且为周五时运行
常见使用场景
- Linux Crontab 任务
- 构建并验证 `/etc/crontab`、`/etc/cron.d/*` 或单用户 `crontab -e` 中的条目。保存前先用下次运行预览确认排程在服务器配置时区下落在预期时刻。
- Kubernetes CronJob 排程
- 生成 Kubernetes CronJob 的 `spec.schedule` 字段。Kubernetes 1.27+ 还支持 `spec.timeZone`——切到 UTC 设计你的排程,然后显式设置 `timeZone`,避免被工作节点的本地时间带偏。
- GitHub Actions 定时工作流
- 构建 `on.schedule` 下的 `cron:` 条目。GitHub Actions 始终运行在 UTC——把预览切到 UTC 来确认你的排程。避免小于 15 分钟的间隔;GitHub 调度器在负载下会跳过短间隔任务。
- AWS EventBridge 规则
- 为 EventBridge 定时规则构造 cron 表达式。注意:AWS 使用 Quartz 风格的六字段语法,「星期」用 `?`——本工具输出 POSIX 五字段,你需要在前面补一位秒(`0`),并把两个「日」字段中只有一个限定时另一个的 `*` 换成 `?`。
- GitLab CI 定时流水线
- 校验 GitLab 定时 CI 流水线的 cron 表达式。GitLab 使用 POSIX 五字段语法——正是本工具输出的形式。GitLab 也提供 UI 日期选择器,但 cron 形式在非标准间隔下能给你更精细的控制。
- Cloudflare Workers Cron Triggers
- 构造 `wrangler.toml` 里的 `[triggers.crons]` 条目。Cloudflare 使用 POSIX 五字段语法,最小间隔为 1 分钟,worker 运行在 UTC。用预览确认触发落在预期窗口内。
- Node.js node-cron 排程
- 为 `node-cron` 库构建表达式——它同时支持五字段 POSIX 和可选的首位秒字段。除非真的需要亚分钟精度,否则建议坚持五字段;六字段表达式无法搬到 Linux crontab。
- 代码评审与文档
- 把 PR 或 runbook 里的 cron 表达式粘进来,立刻知道它在做什么——不必再对着 `30 7 * * 1-5` 苦思,也不用翻参考卡片。中文描述也很适合放在内联注释和 README 中。
Cron 语法参考
- 字段顺序:分 时 日 月 星期
- 分(0-59)、时(0-23)、日(1-31)、月(1-12)、星期(0-6,7 也表示周日)。「星期」字段同时接受数字(0-6)和英文缩写(SUN-SAT,大小写不敏感)。
- 运算符
- `*` = 任意值;`,` = 列表分隔(`1,3,5`);`-` = 区间(`1-5`);`/` = 步长(`*/15`、`5/10`);名称:月份 JAN-DEC、星期 SUN-SAT(大小写不敏感)。
- 宏(别名)
- `@yearly` = `0 0 1 1 *`;`@annually` = `0 0 1 1 *`;`@monthly` = `0 0 1 * *`;`@weekly` = `0 0 * * 0`;`@daily` = `0 0 * * *`;`@midnight` = `0 0 * * *`;`@hourly` = `0 * * * *`。`@reboot` 是特殊的非排程宏(仅在系统启动时运行),会被本工具拒绝并附说明。
- POSIX 日/星期语义(OR 规则)
- 当「日」和「星期」都被限定(都不是 `*`)时,只要其一匹配,排程就会触发——OR 语义。仅其一被限定时,由该字段决定。两者都是 `*` 时,每天都匹配。这条 OR 规则适用于 vixie cron、BSD cron 和大多数 POSIX 实现;Quartz 则用 `?` 来在 AND 与 OR 之间消歧。
- 六字段模式(Quartz-Lite)
- 如果输入有六个空格分隔的 token,本工具会把首位当作秒字段(0-59)。这对 Quartz、Spring `@Scheduled(cron=...)` 和 node-cron 很有用。不可移植到 Linux crontab 或 POSIX 调度器——它们会把你的「秒」当成「分」,把后续字段整体往前错一格。
- 步长运算符的锚定
- `*/N` 锚定到字段的最小值:分钟里的 `*/15` = `0,15,30,45`,而不是「从现在起每 15 分钟」。基准非通配时:分钟里的 `5/15` = `5,20,35,50`。如果步长不能整除字段区间,在回绕处会跳过——这是正确行为,不是 bug。
- 校验边界
- 分 ∈ [0,59]、时 ∈ [0,23]、日 ∈ [1,31]、月 ∈ [1,12]、星期 ∈ [0,7]。超出范围的值会产生字段级错误。「日」不会按实际月份校验(`0 0 31 2 *` 能正常解析,但永远不会触发,因为 2 月没有 31 日——下次运行预览会显示「未来 4 年内无运行计划」)。
- 拒绝 Quartz 运算符
- POSIX cron 不支持 Quartz 的 `?`(无特定值)、`L`(last)、`W`(最近工作日)和 `#`(每月第 n 个星期几)。本工具会以明确的「不支持 Quartz 运算符」错误信息拒绝它们,而不是悄悄按 POSIX 解析失败。Quartz 排程请用 Quartz 感知的工具或 Spring 调度器。
- 下次运行搜索的年份上限
- 下次运行计算最多向前搜索 4 年;触发频率比这更低的表达式(例如「2 月 29 日」模式)会显示「未来 4 年内无运行计划」。这是为了避免在不可能匹配的模式上无限迭代而做的设计。
Cron 排程最佳实践
- 服务器统一 UTC,显示时再转本地
- 把服务器设为 UTC(`/etc/timezone` 或 `TZ=UTC`),所有 cron 表达式都按 UTC 编写。只在 dashboard 和报表展示时转换为本地时间。这能消灭一整类时区 bug——它们在夏令时切换时危害最大,本地时间排程会无声地重复触发或漏跑。借助本工具的 UTC 开关,从一开始就按 UTC 设计排程。
- 避开 POSIX「日/星期」OR 陷阱
- 除非你确实想要 OR 语义,否则永远不要同时限定「日」和「星期」。如果想要「一月份的每个周一」,写 `0 0 * 1 1`(「日」是 `*`);想要「每月 1 日」,写 `0 0 1 * *`(「星期」是 `*`)。POSIX 的 OR 规则会让 `0 0 1 * 1` 在每月 1 日和每个周一都触发——几乎不可能是你的本意。部署前先看下次运行预览,就能及时捕获这种问题。
- 在排程定义里显式锁定时区
- 现代调度器都支持在排程定义里固定时区:crontab 顶部加 `CRON_TZ=America/New_York`(vixie cron 3.0+);Kubernetes CronJob 1.27+ 用 `spec.timeZone: "America/New_York"`;AWS EventBridge Scheduler 在排程表达式上配 `ScheduleExpressionTimezone`。显式锁定时区,不要依赖服务器默认——基础设施迁移时服务器时区可能毫无征兆地变化。
- 把负载分散到不同分钟,避免都堆在 :00
- 非关键任务避免使用 `0 * * * *`(每小时第 0 分钟)——规模上来后,所有事情都挤在 :00 会造成负载尖峰。为每个任务挑一个随机分钟偏移(`23 * * * *`、`41 * * * *`)来分散压力。每日任务同理:当大量任务都赶在 3:00 时,`30 3 * * *` 比 `0 3 * * *` 对数据库更友好。
- 让任务幂等
- cron 没有内建重试、没有重叠保护、没有错过恢复。你的任务必须能安全地多次运行(幂等)并自我检查。与其写「上午 9 点发送报表」,不如写成「如果今天的报表还没发,就发送」——这能在宕机、误重复排程、并发触发后自愈。幂等是任务自身的属性,不是调度器的属性,也是最重要的可靠性实践。
- 为关键排程加心跳监控
- cron 最大的弱点就是静默失败——排程没触发时,没有任何提示。关键任务可以在执行结束时给心跳服务(Healthchecks.io、Cronitor、Dead Man's Snitch)发一次 ping;预期 ping 没到时,服务会告警。这能同时捕获「任务失败」和「排程根本没触发」两种情况。免费额度足以覆盖个人和小团队的常见需求。
- 上线前用下次运行预览核对一遍
- 部署新 cron 排程前,先看本工具预览里接下来的五次运行时刻,切换「本地」与「UTC」核对。确认排程落在你期望的时刻——不会提早五分钟、不会跑错日子、不会漏掉你在意的周末。预览是成本最低的「生产环境测试」。
常见问题
这个工具是做什么的?
什么是 cron 表达式?
我的数据会被上传到任何地方吗?
POSIX cron 与 Quartz 有什么区别?
为什么 '0 0 1 * 5' 会在每个周五和每月 1 日都触发?
如何让任务每 30 秒运行一次?
cron 使用什么时区?
'*/15' 实际展开成什么?
可以使用带秒字段的六字段表达式吗?
cron 能表达的最大间隔是多少?
宕机后错过的任务怎么处理?
为什么我的 GitHub Actions cron 不按时运行?
相关工具
查看所有工具 →Unix 时间戳与 Epoch 转换器 — 多精度支持
日期和时间
免费在线 Unix 时间戳转换工具,即时将 epoch 时间戳转日期。自动检测秒/毫秒/微秒,实时时钟,双向转换。数据不出浏览器,无需注册。
进制转换器 — 二进制、十六进制、十进制、八进制互转
转换工具
在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。
Base64 解码与编码工具
编码和格式化
免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。
CSV 转 JSON 转换器
编码和格式化
在浏览器中将 CSV 转换为 JSON。支持 RFC 4180、类型推断、表头行、大整数安全。100% 隐私,无需上传。
在线压缩 JPEG、PNG、WebP 图片 — 免费批量处理
转换工具
免费在线压缩 JPEG、PNG、WebP 图片,体积缩小高达 80%。浏览器本地处理、图片不上传服务器。支持批量压缩 20 张、质量调节、前后对比预览。无需注册。
JSON Diff 对比
编码和格式化
在浏览器中即时对比两份 JSON。Side-by-Side 高亮 + RFC 6902 JSON Patch 输出,一键忽略 timestamps、IDs 等噪音字段。100% 隐私保护,零上传。