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

 

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