时间表示格式
-
Unix time
通俗来说Unix time是自Unix纪元(1970年1月1日的UTC)以来经过的秒数。Unix时间是一个带符号的数字,编程中常被称为Timestamp。 -
ISO8601
看名字就能猜到ISO8601是个国际标准,明确来说它是一项涉及与日期和时间相关的数据交换的国际标准,于1988年首次发布。 -
RFC3339
RFC(Request for Comments)是由Internet协会(Internet Society,ISOC)发表的,它是Internet的主要技术开发和标准制定机构。因此RFC3339是用于Internet的日期和时间标准,于2002年发表。
RFC3339包含ISO 8601标准的Internet配置文件,用于使用公历表示日期和时间。
时区
时区不用介绍,大家都懂,但是有两个相关概念容易混淆,那就是世界协调时UTC
和格林威治标准时间GMT
。
现在UTC是全世界调节时钟和时间的主要时间标准,可以粗略认为UTC接替了GMT。
Python datetime
使用标准库datetime
最大的感受就是对时区处理不友好,官方的理由是时区涉及到政治时间和夏令时,多变,不好统一。用法直接看文档就好了,这里主要说一下注意事项:
datetime注意事项
- 为什么格式化时间不带时区信息?
官方文档的开头详细介绍了该标准库中有两种日期和时间对象:naive
和aware
,它们的区别就是前者没有时区信息,后者带有时区信息。
默认都是naive
,直接打印或者strftime
,显示的时间字符串都没有时区信息。
如果你想得到一个aware
对象,需要显式指定tzinfo
属性。
注: