我总是使用 unix 时间戳来处理所有事情,但我想知道是否有更好的方法。
你用什么来存储时间戳?为什么?
最佳答案
无论您选择如何存储时间戳,避免区域解释问题和时间偏移问题都很重要。无论区域如何,Unix 时间戳的解释都是相同的,并且无论时区如何,都从同一时间点计算 - 这些都是好事。
小心将时间戳存储为不明确的字符串,例如 01/02/2008,因为它可以解释为 2008 年 1 月 2 日或 2008 年 2 月 1 日,具体取决于区域设置。
存储小时/分钟/秒时,了解指定的是“哪个”小时/分钟/秒非常重要。您可以通过包含时区信息(Unix 时间戳不需要,因为它被假定为 UTC)来做到这一点。
但是请注意,Unix 时间戳不能唯一地表示某些时间点:当 UTC 存在闰秒时,Unix 时间戳不会改变,因此 23:59:60 UTC 和第二天的 00:00:00具有相同的 Unix 表示形式。因此,如果您确实需要一秒或更好的分辨率,请考虑其他格式。
如果您更喜欢比 Unix 时间戳更易读的存储格式,请考虑 ISO 8601 .
一种有助于让事情变得简单的技术是将日期存储为 UTC,并且仅在向用户显示日期时应用时区或 DST 偏移量。
关于timestamp - unix 时间戳是存储时间戳的最佳方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178704/