Python 时间日期

感觉最近很常用到 Python 的时间与日期相关模块,之前也有碰到就去查,不过最近既然比较频繁还是作个备忘偷个懒。
表示时间的两种方式:

  • 时间戳(timestamp),即相对于 1970.1.1 00:00:00 以秒计算的偏移量,是唯一的
  • 时间元组(struct_time),共计 9 个元素,同一时间戳的时间元组会因时区不同而不同

datetime 模块常用方法

主要用到这两个类:

  • datetime.datetime: 年月日构成的日期加上时分秒微秒构成了日期与时间
  • datetime.timedelta: 表示时间间隔对象,可以由两个时间点对象相减得到
    (比如 datetime 对象),访问该对象相应属性可以得到间隔的天数、分钟
    数等等

datetime.datetime 类

datetime.datetime.strptime(),从一个日期时间字符串生成 datetime.datetime 对象,比如

In [1]: import datetime
In [2]: d_str = "2016-01-01 12:34:56"
In [3]: datetime.datetime.strptime(d_str, '%Y-%m-%d %H:%M:%S')
Out[3]: datetime.datetime(2016, 1, 1, 12, 34, 56)

datetime.datetime.strftime(), 跟上一个类方法功能相反,是从 datetime.datetime 对象生成日期时间字符串
datetime.datetime.fromtimestamp(),从一个时间戳生成 datetime.datetime 对象,


# time.time() 用于得到当前时间的时间戳

In [4]: import time
In [5]: datetime.datetime.fromtimestamp(time.time())
Out[5]: datetime.datetime(2016, 2, 21, 10, 50, 37, 481266)
# 此时跟 datetime.datetime.now()等效
In [6]: datetime.datetime.now()
Out[6]: datetime.datetime(2016, 2, 21, 10, 53, 2, 687602)

datetime.timedelta 类

主要用于得到间隔时间的相关值

from datetime import datetime
publish_time = "2016-01-01 12:34:56"
delta = datetime.now() - datetime.strptime(publish_time, '%Y-%m-%d %H:%M:%S')
delta_day = delta.days

发表评论

电子邮件地址不会被公开。 必填项已用*标注