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