关于时间
(每日一篇,找个知识点巩固下,)
最近在搞云计算平台(rancher + kubernetes + ceph +。。。),踩坑正在进行中,以后再总结,今天先总结下时间格式(来源在此:https://unix4lyfe.org/time/?v=1)
UTC
协调世界时, 也叫世界标准时间,在零经度(本初子午线)的时间。1972年制定,精度为毫秒。
GMT
格林尼治时间,UTC的旧名,因为本初子午线经过了格林尼治皇家天文台
时区
以UTC世界为标准偏移,例如中国的时区为 UTC+0800
夏令时
不影响UTC
闰秒
UTC与原子时钟对其的一种方法。原子钟精度为纳秒,要求误差不超过0.9秒,顾需定时调整。闰秒会导致完全一样的timestamp。
闰秒同步最多提前6个月通知。
Unix时间戳
从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。根据POSIX.1,Unix时间戳通过重复解决同步问题,确保了
一天总是86400秒。
程序中需考虑的时间问题
时区是表现层的问题
保存时间请使用Unix时间,它只是数字(single)
如果要保存可读的时间信息,请和Unix时间一起保存,而不是替换Unix时间。
系统时间时不准确的且不受控制的,可跳秒,程序需充分考虑。
mysql(4.x,5.x)中datetime类型保存的是 “YYYY-MM-DD HH:MM:SS”格式的字符串,不包含时区,同过@@session.timezone解释成时间。