Python?time時(shí)間格式化和設(shè)置時(shí)區(qū)實(shí)現(xiàn)代碼詳解
1、時(shí)間戳轉(zhuǎn)換為指定格式日期
import time t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(t) timestamp = time.time() tuple_time = time.localtime(timestamp) print(tuple_time) print(time.strftime("%Y-%m-%d %H:%M:%S", tuple_time))
2、將字符串的時(shí)間轉(zhuǎn)換為時(shí)間戳
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(time_struct) print(time.mktime(time_struct)) print(int(time.mktime(time_struct)))
3、Datetime詳細(xì)介紹
Python提供了多個(gè)內(nèi)置模塊用于操作日期時(shí)間,像calendar,time,datetime。time模塊我在之前的文章已經(jīng)有所介紹,它提供 的接口與C標(biāo)準(zhǔn)庫(kù)time.h基本一致。相比于time模塊,datetime模塊的接口則更直觀、更容易調(diào)用。今天就來(lái)講講datetime模塊。
datetime模塊定義了兩個(gè)常量:datetime.MINYEAR和datetime.MAXYEAR,分別表示datetime所能表示的最 小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。(對(duì)于偶等玩家,這個(gè)范圍已經(jīng)足夠用矣~~)
- datetime模塊定義了下面這幾個(gè)類(lèi):
- datetime.date:表示日期的類(lèi)。常用的屬性有year, month, day;
- datetime.time:表示時(shí)間的類(lèi)。常用的屬性有hour, minute, second, microsecond;
- datetime.datetime:表示日期時(shí)間。
- datetime.timedelta:表示時(shí)間間隔,即兩個(gè)時(shí)間點(diǎn)之間的長(zhǎng)度。
- datetime.tzinfo:與時(shí)區(qū)有關(guān)的相關(guān)信息。(這里不詳細(xì)充分討論該類(lèi),感興趣的童鞋可以參考python手冊(cè))
注 :上面這些類(lèi)型的對(duì)象都是不可變(immutable)的。
下面詳細(xì)介紹這些類(lèi)的使用方式。
date類(lèi)
date類(lèi)表示一個(gè)日期。日期由年、月、日組成(地球人都知道~~)。date類(lèi)的構(gòu)造函數(shù)如下:
class datetime.date(year, month, day):參數(shù)的意義就不多作解釋了,只是有幾點(diǎn)要注意一下:
- year的范圍是[MINYEAR, MAXYEAR],即[1, 9999];
- month的范圍是[1, 12]。(月份是從1開(kāi)始的,不是從0開(kāi)始的~_~);
- day的最大值根據(jù)給定的year, month參數(shù)來(lái)決定。例如閏年2月份有29天;
date類(lèi)定義了一些常用的類(lèi)方法與類(lèi)屬性,方便我們操作:
- date.max、date.min:date對(duì)象所能表示的最大、最小日期;
- date.resolution:date對(duì)象表示日期的最小單位。這里是天。
- date.today():返回一個(gè)表示當(dāng)前本地日期的date對(duì)象;
- date.fromtimestamp(timestamp):根據(jù)給定的時(shí)間戮,返回一個(gè)date對(duì)象;
- datetime.fromordinal(ordinal):將Gregorian日歷時(shí)間轉(zhuǎn)換為date對(duì)象;(Gregorian Calendar :一種日歷表示方法,類(lèi)似于我國(guó)的農(nóng)歷,西方國(guó)家使用比較多,此處不詳細(xì)展開(kāi)討論。)
4、獲得三天前的時(shí)間的方法
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(datetime.datetime.now()) computed_time = datetime.datetime.now() - datetime.timedelta(days=3) print(computed_time) timestamp = time.mktime(computed_time.timetuple()) print(timestamp) time_str = time.strftime("%Y-%m-%d %H:%M:%S", computed_time.timetuple()) print(time_str)
5、使用datetime模塊來(lái)獲取當(dāng)前的日期和時(shí)間
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") currentDate = datetime.datetime.now() print(time.strftime("%Y-%m-%d %H:%M:%S", currentDate.timetuple())) print(currentDate.year) print(currentDate.month) print(currentDate.day) print(currentDate.hour) print(currentDate.minute) print(currentDate.second)
date提供的實(shí)例方法和屬性:
- date.year、date.month、date.day:年、月、日;
- date.replace(year, month, day):生成一個(gè)新的日期對(duì)象,用參數(shù)指定的年,月,日代替原有對(duì)象中的屬性。(原有對(duì)象仍保持不變)
- date.timetuple():返回日期對(duì)應(yīng)的time.struct_time對(duì)象;
- date.toordinal():返回日期對(duì)應(yīng)的Gregorian Calendar日期;
- date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此類(lèi)推;
- data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此類(lèi)推;
- date.isocalendar():返回格式如(year,month,day)的元組;
- date.isoformat():返回格式如'YYYY-MM-DD’的字符串;
- date.strftime(fmt):自定義格式化字符串。在下面詳細(xì)講解。
import time from datetime import datetime, date time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") now = date(2023, 1, 18) print(time.strftime("%Y-%m-%d %H:%M:%S", now.timetuple())) print(now.weekday()) print(now.isoformat())
date還對(duì)某些操作進(jìn)行了重載,它允許我們對(duì)日期進(jìn)行如下一些操作:
- date2 = date1 + timedelta # 日期加上一個(gè)間隔,返回一個(gè)新的日期對(duì)象(timedelta將在下面介紹,表示時(shí)間間隔)
- date2 = date1 - timedelta # 日期隔去間隔,返回一個(gè)新的日期對(duì)象
- timedelta = date1 - date2 # 兩個(gè)日期相減,返回一個(gè)時(shí)間間隔對(duì)象
- date1 < date2 # 兩個(gè)日期進(jìn)行比較
注: 對(duì)日期進(jìn)行操作時(shí),要防止日期超出它所能表示的范圍。
import time from datetime import datetime, date, timedelta time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") currentDate = date.today() print(time.strftime("%Y-%m-%d %H:%M:%S", currentDate.timetuple())) time_delta = currentDate - timedelta(days=1) print(time.strftime("%Y-%m-%d %H:%M:%S", time_delta.timetuple())) print(currentDate > time_delta) print(currentDate - time_delta) print(time_delta + timedelta(days=3))
datetime類(lèi)提供的實(shí)例方法與屬性(很多屬性或方法在date和time中已經(jīng)出現(xiàn)過(guò),在此有類(lèi)似的意義,這里只羅列這些方法名,具體含義不再逐個(gè)展開(kāi)介紹,可以參考上文對(duì)date與time類(lèi)的講解。):
- datetime.year、month、day、hour、minute、second、microsecond、tzinfo:
- datetime.date():獲取date對(duì)象;
- datetime.time():獲取time對(duì)象;
- datetime. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ]):
- datetime. timetuple ()
- datetime. utctimetuple ()
- datetime. toordinal ()
- datetime. weekday ()
- datetime. isocalendar ()
- datetime. isoformat ([ sep] )
- datetime. ctime ():返回一個(gè)日期時(shí)間的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
- datetime. strftime (format)
像date一樣,也可以對(duì)兩個(gè)datetime對(duì)象進(jìn)行比較,或者相減返回一個(gè)時(shí)間間隔對(duì)象,或者日期時(shí)間加上一個(gè)間隔返回一個(gè)新的日期時(shí)間對(duì)象。
到此這篇關(guān)于Python time時(shí)間格式化和設(shè)置時(shí)區(qū)實(shí)現(xiàn)代碼詳解的文章就介紹到這了,更多相關(guān)Python time時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas DataFrame數(shù)據(jù)存儲(chǔ)格式比較分析
Pandas 支持多種存儲(chǔ)格式,在本文中將對(duì)不同類(lèi)型存儲(chǔ)格式下的Pandas Dataframe的讀取速度、寫(xiě)入速度和大小的進(jìn)行測(cè)試對(duì)比,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-09-09利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫(xiě)入Excel
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫(xiě)入Excel的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01Python利用卡方Chi特征檢驗(yàn)實(shí)現(xiàn)提取關(guān)鍵文本特征
卡方檢驗(yàn)最基本的思想就是通過(guò)觀察實(shí)際值與理論值的偏差來(lái)確定理論的正確與否。本文將利用卡方Chi特征檢驗(yàn)實(shí)現(xiàn)提取關(guān)鍵文本特征功能,感興趣的可以了解一下2022-12-12Python實(shí)現(xiàn)人臉識(shí)別并進(jìn)行視頻跟蹤打碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)人臉識(shí)別并進(jìn)行視頻跟蹤打碼效果,羞羞的畫(huà)面統(tǒng)統(tǒng)打上馬賽克,感興趣的小伙伴可以了解一下2023-03-03使用Python實(shí)現(xiàn)圖像有效壓縮的方法
在數(shù)字時(shí)代,圖像作為信息傳遞的重要媒介,在網(wǎng)頁(yè)設(shè)計(jì)、移動(dòng)應(yīng)用和多媒體制作中扮演著不可或缺的角色,本文將詳細(xì)介紹如何使用Python,一個(gè)功能強(qiáng)大且易于學(xué)習(xí)的編程語(yǔ)言,來(lái)實(shí)現(xiàn)圖像的有效壓縮,感興趣的朋友可以參考下2024-03-03Python如何將jpg圖像修改大小并轉(zhuǎn)換為png
這篇文章主要介紹了Python如何將jpg圖像修改大小并轉(zhuǎn)換為png問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案
這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案,這是小白時(shí)常犯的錯(cuò),這個(gè)報(bào)錯(cuò)一般說(shuō)明在你電腦當(dāng)前環(huán)境下沒(méi)有安裝torch這個(gè)模塊,但也有其他情況,需要的朋友可以參考下2023-10-10pytorch 改變tensor尺寸的實(shí)現(xiàn)
今天小編就為大家分享一篇pytorch 改變tensor尺寸的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01