datetime 使用集合
获取当前日期和时间
先看如何获取当前日期和时间:
>>> from datetime import datetime
>>> now = datetime.now() # 获取当前datetime
>>> print(now)
2015-05-18 16:28:07.198690
>>> print(type(now))
<class 'datetime.datetime'>
注意到 datetime 是模块,datetime 模块还包含一个 datetime 类,通过 from datetime import datetime 导入的才是 datetime 这个类。
如果仅导入 import datetime,则必须引用全名 datetime.datetime。
datetime.now() 返回当前日期和时间,其类型是 datetime。
获取指定日期和时间
要指定某个日期和时间,我们直接用参数构造一个 datetime:
>>> from datetime import datetime
>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
>>> print(dt)
2015-04-19 12:20:00
datetime转换为timestamp
在计算机中,时间实际上是用数字表示的。把 1970 年 1 月 1 日 00:00:00 UTC+00:00 时区的时刻称为 epoch time,记为 0(1970 年以前的时间 timestamp 为负数),当前时间就是相对于 epoch time 的秒数,称为 timestamp。
可以认为:
timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00
对应的北京时间是:
timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00
可见 timestamp 的值与时区毫无关系,因为 timestamp 一旦确定,其 UTC 时间就确定了,转换到任意时区的时间也是完全确定的,这就是为什么计算机存储的当前时间是以 timestamp 表示的,因为全球各地的计算机在任意时刻的 timestamp 都是完全相同的(假定时间已校准)。
把一个 datetime 类型转换为 timestamp 只需要简单调用 timestamp() 方法:
>>> from datetime import datetime
>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
>>> dt.timestamp() # 把datetime转换为timestamp
1429417200.0
注意 Python 的 timestamp 是一个浮点数,整数位表示秒。
某些编程语言(如 Java 和 JavaScript)的 timestamp 使用整数表示毫秒数,这种情况下只需要把 timestamp 除以 1000 就得到 Python 的浮点表示方法。
timestamp 转换为 datetime
要把 timestamp 转换为 datetime,使用 datetime 提供的 fromtimestamp() 方法:
>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t))
2015-04-19 12:20:00
注意到 timestamp 是一个浮点数,它没有时区的概念,而 datetime 是有时区的。上述转换是在 timestamp 和本地时间做转换。
本地时间是指当前操作系统设定的时区。例如北京时区是东 8 区,则本地时间:
2015-04-19 12:20:00
实际上就是 UTC+8:00 时区的时间:
2015-04-19 12:20:00 UTC+8:00
回帖内容已被屏蔽。
好用