Python时间处理

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章