为什么值得把时间工具攒成一篇

时间和别的工具不一样:每天都用,但从没人认真管过它。日志里一串 1760000000 要肉眼换算,定时任务上线前没人验证 Cron 写得对不对,跟海外团队约会被时区绕晕,项目排期算"两个日期之间有几个工作日"靠掰手指。这些场景单拎出来都不大,凑在一起就是每天重复浪费的注意力。站内 time 家族已经攒了二十多款,这篇按时间戳、Cron、时区、日期计算、农历历法、生活计时六条线过一遍,建议直接收藏当目录用。

时间戳:单转、批量、边界

对日志的人只需要三个入口:时间戳转换是主力,Unix 时间戳和日期双向互转,顺手区分秒级和毫秒级——转换报错十次有七次是把毫秒当秒。一次几十条日志就换 时间戳批量转换,多行粘贴一次出结果,秒、毫秒混着来也不影响。做缓存过期、区间枚举、时区测试的人还有第三个:Unix 时间戳边界查询,直接查时间戳的最值和特殊日期对应的边界值,不用在控制台里 Math.pow 手搓。单位换算交给 时间单位转换器,秒分时天周月年双向互转。

Cron:先看懂,再生成,最后验证

抄来的 Cron 表达式最怕两件事:不知道它到底什么时候跑、改了参数没人验证。Cron 解析器两头都管:逐字段拆解含义,并预览接下来若干次执行时间——“每周五 18:00"到底是几点触发,看预览就知道,调试全靠它。反向操作是 Cron 生成器:按"每天几点、周几、几号"可视化勾选,直接吐出表达式,不必背五个位置的口诀。上线前把生成的表达式粘回解析器跑一遍预览,一抄一验闭环就齐了。

时区:转换和查询是两件事

时区转换解决"约几点”:一个界面同时铺开多个时区,滑动基准时间看各地对应时刻,跨国会议排期一步到位。时区查询解决"那边现在几点、有没有夏令时":全球城市时区、UTC 偏移量、夏令时状态一查便知——很多"差了一小时"的事故根源就是忘了对方城市在换夏令时,查一下比赌运气便宜。

日期计算全家福

排期、考勤、写作里高频的七个问题,每个都有对应工具:

问题用哪个
某个日期加 45 天是几号日期计算器
两个日期之间隔了多久日期差计算
今天是第几周周数计算器
现在在哪个季度、季度还剩几天季度计算器
30 个工作日之后是哪天工作日计算
日期写成 ISO 8601 / RFC 2822日期格式化
今年是不是闰年闰年检查器,支持批量查

工作日计算是最容易被低估的一个:合同交付、审批时限按"工作日"算,它自动排除周末,别再按自然日拍脑袋。

中国历法那部分:农历、节气、节假日

农历日历转换公历农历双向互转,带天干地支、生肖和传统节日——查 birthdays 过农历还是公历、挑日子看宜忌,都走它。二十四节气查询给出每个节气的日期与时刻,种花、钓鱼、写文案引用"冬至几点"不用翻黄历帖。中国法定节假日查询管调休和放假天数,安排加班和请假前先查它,别拿日历上的红圈当数。

生活与工作计时

倒计时和秒表是一对老工具,这里只放入口:倒计时器给演讲、番茄钟、抢票定闹钟,秒表计时器支持多段计次。往工作场景走一步:工作时间计算器算出勤工时和加班时长,支持弹性排班;学期计算器给出学年学期起止日期,选课、订酒店、排教的锚点都该是学期而不是月份。要把这些日期落进日历 App,站内另有 ICS 日历文件生成器,旅行整理那篇已经讲过,此处不再展开。

常见问题

Cron 预览的执行时间和服务器实际执行为什么可能差一小时?

时区。解析器按你选择的时区算预览,服务器 crontab 用的是系统时区,容器里还常见默认的 UTC。表达式本身没错、时间对不上时,先核对两边的时区设置,再考虑夏令时。

工作日计算会考虑法定节假日吗?

调休和节假日的完整口径以节假日查询工具给出的安排为准;两个日期跨度里如果包含法定假期,建议在结果上再手动扣除,或先查节假日表再套工作日计算。

小结

六条线各司其职:时间戳管日志和接口,Cron 管"先看懂再上线",时区管跨国协作,日期计算管排期,农历节气节假日管中国式需求,倒计时秒表工时学期管计时本身。这一批工具全部在浏览器本地计算,不上传服务器——时间看起来无所谓,但"某人几点干了什么"就是行程隐私,放在本地处理才安心。