Python中處理時(shí)間的幾種方法小結(jié)
從一個(gè)字符串開始
在CODE上查看代碼片派生到我的代碼片
>>>time_str='2008-08-08 08:08:08'
1.1.轉(zhuǎn)換為struct_time形式的時(shí)間
在CODE上查看代碼片派生到我的代碼片
>>struct = ime.strptime(time_str,'%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2008, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=8, tm_sec=8, tm_wday=4, tm_yday=221, tm_isdst=-1)
1.2.如果要得到對應(yīng)的時(shí)間戳(秒數(shù)):
在CODE上查看代碼片派生到我的代碼片
>>>sec=time.mktime(struct) >>> sec 1218154088.0
1.3.struct_time形式的時(shí)間返回開始的字符串:
在CODE上查看代碼片派生到我的代碼片
>>time_str=time.strftime("%Y-%m-%d %H:%M:%S",struct) >>> time_str '2008-08-08 08:08:08'
1.4.時(shí)間戳(秒數(shù))返回到struct_time形式的時(shí)間怎么辦?
在CODE上查看代碼片派生到我的代碼片
<pre name="code" class="python">>> time.gmtime(sec) time.struct_time(tm_year=2008, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=8, tm_sec=8, tm_wday=4, tm_yday=221, tm_isdst=0)
1.5.時(shí)間戳(秒數(shù))要返回到字符串應(yīng)該就知道怎么弄了吧?
當(dāng)然,有很直接方法,不過轉(zhuǎn)換回去的時(shí)間格式卻不一樣:
在CODE上查看代碼片派生到我的代碼片
>>> time.ctime(sec) 'Fri Aug 08 08:08:08 2008'
1.6.想獲取當(dāng)前的時(shí)間:
今天:
在CODE上查看代碼片派生到我的代碼片
>>> datetime.date.today() datetime.date(2015, 4, 3)
現(xiàn)在:
在CODE上查看代碼片派生到我的代碼片
>>> datetime.datetime.now() datetime.datetime(2015, 4, 3, 15, 19, 47, 361000)
現(xiàn)在的時(shí)間戳:
>>> time.time() 1428045689.396
現(xiàn)在的struct_time形式時(shí)間:
>>> time.localtime() time.struct_time(tm_year=2015, tm_mon=4, tm_mday=3, tm_hour=15, tm_min=21, tm_sec=52, tm_wday=4, tm_yday=93, tm_isdst=0)
現(xiàn)在的UTC日期形式:
>>> time.ctime() 'Fri Apr 03 15:23:45 2015'
1.7)datetime.date/datetime/time要轉(zhuǎn)換成struct_time怎么辦?
>>> datetime.datetime.now().timetuple() time.struct_time(tm_year=2015, tm_mon=4, tm_mday=3, tm_hour=15, tm_min=31, tm_sec=19, tm_wday=4, tm_yday=93, tm_isdst=-1)
這樣,結(jié)合1.2,要轉(zhuǎn)換成秒是不是很簡單了?
1.8.datetime.date/datetime形式的的日期怎么轉(zhuǎn)換成‘2010-01-01 00:00:00'形式的字符串?
結(jié)合1.3和1.7是不是很簡單?
1.9.字符串如何轉(zhuǎn)換成datetime.date/datetime/time呢?
在CODE上查看代碼片派生到我的代碼片
>>> datetime.datetime.strptime('2014-01-01',"%Y-%m-%d") datetime.datetime(2014, 1, 1, 0, 0)
2.0.然后要將struct_time轉(zhuǎn)換為datetime.date/datetime/time也就成功了
在什么情況下需要將struct_time轉(zhuǎn)換為datetime.date/datetime/time.看了2.1就明白了
2.1時(shí)間運(yùn)算——時(shí)間的加減
昨天的時(shí)間怎么算?
在CODE上查看代碼片派生到我的代碼片
>> today=datetime.date.today()
在CODE上查看代碼片派生到我的代碼片
>>> delta=datetime.timedelta(days=1) >>> yesterday=today-delta >>> yesterday datetime.date(2015, 4, 2)
明天呢?七天(前)后呢?一分鐘前呢(),一秒呢?
看看這個(gè)構(gòu)造函數(shù):
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]),能幫助你回答上面的問題吧?
注意阿,struct_time以及字符串都不可以和datetime.timedelta進(jìn)行運(yùn)算。所以知道從其他形式轉(zhuǎn)換成datetime.date/datetime/time.是很有用的吧。
當(dāng)然,struct_time也可以這樣進(jìn)行時(shí)間運(yùn)算。比如要計(jì)算昨天:
>>from time import time,localtime >>day = 24*60*60 >>yesterday = localtime(time()-day)
2.2)時(shí)間比較:
這個(gè)就只說明一句了:datetime.(date/datetime/time.)和struct_time形式的時(shí)間都可以進(jìn)行比較。(彼此之間不能比較)
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)之遞歸方法詳解
這篇文章主要為大家介紹了遞歸的基本概念以及如何構(gòu)建遞歸程序。通過本章的學(xué)習(xí),大家可以理解遞歸的基本概念,了解遞歸背后蘊(yùn)含的編程思想以及掌握構(gòu)建遞歸程序的方法,需要的可以參考一下2022-04-04Python爬蟲requests模塊之URL地址中的參數(shù)解讀
這篇文章主要介紹了Python爬蟲requests模塊之URL地址中的參數(shù)解讀,在你拿到數(shù)據(jù)所在的url地址之后,發(fā)送網(wǎng)絡(luò)請求時(shí),請求的url中包含兩種地址參數(shù):查詢參數(shù)和請求參數(shù),需要的朋友可以參考下2023-08-08Python?selenium?find_element()示例詳解
selenium定位元素的函數(shù)/方法可以分為兩類:find_element及find_elements,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?find_element()的相關(guān)資料,需要的朋友可以參考下2022-07-07Python+Pygame實(shí)戰(zhàn)之24點(diǎn)游戲的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Python和Pygame實(shí)現(xiàn)24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04基于python編寫監(jiān)控系統(tǒng)各項(xiàng)資源的腳本
這篇文章主要為大家詳細(xì)介紹了如何編寫一個(gè)python腳本,實(shí)現(xiàn)監(jiān)控網(wǎng)絡(luò)的流量、CPU使用率、內(nèi)存使用率和磁盤使用情況,感興趣的小伙伴可以了解下2023-11-11