时间模块-datetime

一.datetime模块有哪几个类?

  • date 类: datetime模块中分管对年,月,日的处理
  • time 类: 分管对时钟,分钟,秒的处理
  • datetime 类: date+time,分管年,月,日,时钟,分钟,秒的处理
  • timedelta 类: 分管时间间隔的处理,比如今天之前的1000天是哪一天,不用转换为时间戳,再计算,可以直接调用对象处理
  • 其他 类

二.datetime类

一般调用的时候,用的最多的也是这个datetime类(毕竟它会的比较多@_@)

from datetime import datetime  # 前面一个是模块的名称,后面一个是类的名称,建议大家调用datetime类的时候采取这种方式,简单而清晰

1.怎么获取这个类的对象?

对面向对象编程有些了解的都知道,既然类都出现了,就一定有这个类的对象,可是有哪些方法获取?

  • 获取指定日期和时间:
from datetime import datetime
special = datetime(2017, 8, 9, 12, 20, 20)  # 类的前三个参数年,月,日必须有
 # special是一个datetime对象,print输出,得到的是:2017-08-09 12:20:20
  • 获取当前日期和时间
from datetime import datetime
now = datetime.now()  # 获取此时的这个时间刻度的datetime对象

2.datetime对象和时间戳之间的转换

  • datetime对象转换为时间戳:
time_stamp = special.timestamp()  # 1502252420.0
  • 时间戳转换为datetime对象:
another_special = datetime.fromtimestamp(time_stamp)  # 2017-08-09 12:20:20(本地时间:东八区)
another_special_utc = datetime.utcfromtimestamp(time_stamp)  # 2017-08-09 04:20:20(UTC标准时区时间,比本地时间晚八个小时)

3.datetime对象和时间字符串之间的转换

  • datetime对象转换为时间字符串:
from datetime import datetime
special = datetime(2017, 8, 9, 12, 20, 20) # special为datetime对象
time_string = special.strftime('%Y-%m-%d %X')  # 2017-08-09 12:20:20
# 注:datetime类中的strftime()是对象方法,调用该方法的是一个实例化的datetime对象;不像time中,调用的是time类
  • 时间字符串转换为datetime对象:
again_special = datetime.strptime(time_string, '%Y-%m-%d %X')  # datetime对象

注:

  1. datetime中,时间戳和时间字符串,以及datetime对象三者之间,其中datetime是桥梁,是中间人!
  2. 在上述方法中,除了strftime方法和timestamp()是对象方法外,其他的都是类方法直接调用的

Last:时间间隔处理(timedelta)

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> print(now)
2017-08-09 12:02:08.850243
>>> s1 = now + timedelta(hours=10)  # 十小时后是什么时间?
>>> print(s1)
2017-08-09 22:02:08.850243
>>> s2 = now - timedelta(days=1000)  # 1000天前是什么日子?
>>> print(s2)
2014-11-13 12:02:08.850243
>>> s3 = now + timedelta(days=2, hours=43)  # 两天后,再多个43小时后是什么日子?
>>> print(s3)
2017-08-13 07:02:08.850243 
>>>

其他:

datetime对象还有许多非常有用的属性,如:对象.year,对象.month

两篇非常有用的datetime文章:

  • 精简:
    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431937554888869fb52b812243dda6103214cd61d0c2000
  • 详细:
    http://www.cnblogs.com/yyds/p/6369211.html

你可能感兴趣的:(时间模块-datetime)