一.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对象
注:
- datetime中,时间戳和时间字符串,以及datetime对象三者之间,其中datetime是桥梁,是中间人!
- 在上述方法中,除了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