时间戳、时区和只有日期的业务值应该怎样区分?
参考答案
时间戳表达一个确定瞬间,时区决定这个瞬间如何转换为当地日期和时间。Date 内部保存时间值,不会因为显示在不同地区就变成另一个瞬间,但本地 getter 和格式化结果可能不同。
生日、账期等“只有日期”的业务值不一定应该当作 UTC 午夜的瞬间处理,否则跨时区展示时可能前后偏一天。应先明确业务语义,再选择日期字符串、时间戳或更合适的日期时间类型。
夏令时会使某些本地时间不存在或重复,因此“加一天”与“加 24 小时”不总等价。解析非标准日期字符串存在环境差异,应使用明确格式和时区约定,不能依赖本机测试结果推广到所有用户。