数据库里存了一串 1789987654,日志里时间是 2026-09-27T18:00:00Z,前端要显示"2026年9月27日 周一"——时间戳、UTC、时区是开发者最常踩坑的地方。
Unix时间戳 = 从1970年1月1日0点(UTC)到现在的秒数。它是全世界通用的"绝对时间",不分时区。数据库里存时间戳是标准做法,展示时再转成当地时区。
常见的坑:
System.currentTimeMillis() 是毫秒(13位),PHP的 time() 是秒(10位),转错位数时间直接差1000倍。10位=秒,13位=毫秒。13位除以1000取整就是秒。在线工具一般自动识别位数。
那是时区问题:时间戳本身没错,是你的电脑在东八区(UTC+8)。转换时确认工具按你需要的时区显示。
32位整数存时间戳会在2038年溢出(Y2038问题),64位系统没有此问题。新项目记得用64位类型。