datetime 模块获得当前日期和时间
先来介绍datetime模块最最基本和最最常用的两个方法
1、获取当前日期(年月日格式)
>>>import datetime
>>>date = datetime.date.today()
>>>print date
2018-09-07
#将上面日期改成字符串格式
>>>strdate= date.strftime('%Y-%m-%d')
>>>print strdate
>>>print type(strdate)
2018-09-07
<type 'str'>
2、获得当前时间
>>>import datetime
>>>time = datetime.datetime.now()
>>>print time
2018-09-07 16:02:16.071000
#将上面日期转为字符串格式
>>>strtime = time.strftime('%Y-%m-%d %H:%M:%S')
>>>print strtime
2018-09-07 16:02:16
3、具体看下date类
date类由year, month, day 三部分构成,下面我们分别提取年月日
datetime 是date+time ,如果想获得提取具体的年月日时分秒可以根据time.year,time.hour,time.minute......
>>>datetime.date.today()
datetime.date(2018, 9, 7)
>>>print datetime.date.today().year
2018
>>>print datetime.date.today().month
9
>>>print datetime.date.today().day
7
4、时间移动timedelta(获得几天前\后,几小时前\后)
如果要拿到5天前的日期,3个小时候的时间等等,这时候就是timedelta 发挥它的实力的时候了
#当前时间
>>>time = datetime.datetime.now()
>>>print time
2018-09-07 16:45:03.833000
#5天前的时间
>>>time1=datetime.datetime.now()-datetime.timedelta(days=5)
>>>print time1
2018-09-02 16:45:03.834000
#3小时候的时间
>>>time2=datetime.datetime.now()+datetime.timedelta(hours=3)
>>>print time2
2018-09-07 19:45:03.834000
5、字符串和时间的转换
strftime: 将时间格式转为字符串
strptime: 将字符串转格式为时间
(1) datetime转str
>>>time = datetime.datetime.now()
strtime = time.strftime('%Y-%m-%d %H:%M:%S')
print strtime
print type(strtime)
2018-09-07 17:02:52
<type 'str'>
(2)str转datetime
>>>strt = datetime.datetime.strptime('2018-09-07 17:10:23','%Y-%m-%d %H:%M:%S')
>>>print strt
>>>print type(strt)
2018-09-07 17:10:23
<type 'datetime.datetime'>
6、timestamp 和格式化的字符串互换
(1)timestamp转为格式化的字符串
import time
>>>a = time.time()
>>>print a
1536475593.46
>>>b = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(a))
>>>print b
2018-09-09 14:46:33
(2)格式化的字符串转为timestamp
>>>c = time.mktime(time.strptime('2018-09-09 14:57:23','%Y-%m-%d %H:%M:%S'))
>>>print c
1536476243.0
7、时间戳和datetime互换
(1) 时间戳转为datetime 对象
>>>print datetime.datetime.fromtimestamp(time.time())
2018-09-09 15:05:19.694000
(2) datetime对象转为时间戳
>>>time.mktime(datetime.datetime.now().timetuple())
1536477098.0