關(guān)于python中time和datetime的區(qū)別與用法
一. Python中表示時(shí)間的兩種方式:
- 時(shí)間戳:相對(duì)于1970.1.1 00:00:00以秒計(jì)算的偏移量,唯一的
- 時(shí)間元組struct_time:共有9個(gè)元素> tm_year:年1-12> tm_mon:月1-12> tm_mday:日1-31> tm_hour:時(shí)0-23> tm_min:分0-59> tm_sec:秒0-59> tm_wday:星期0-6(0表示周日)> tm_day:一年中的第幾天1-366> tm_isdst:是否是夏令,默認(rèn)為-1
二. time
1. time.time() #當(dāng)前時(shí)間戳, 沒(méi)參數(shù),唯一值 2. time.sleep(secs) #暫停幾秒 3. time.gmtime(secs) #無(wú)參得到當(dāng)前格林尼治時(shí)間,有時(shí)間戳參數(shù)就轉(zhuǎn)為格林尼治結(jié)構(gòu)時(shí)間 4. time.localtime(secs) #無(wú)參得到local結(jié)構(gòu)化時(shí)間, 有時(shí)間戳參數(shù)就轉(zhuǎn)為local結(jié)構(gòu)化時(shí)間 print(time.localtime()) # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=20, tm_sec=44, tm_wday=3, tm_yday=293, tm_isdst=0) print(time.localtime(13912345678)) # time.struct_time(tm_year=2410, tm_mon=11, tm_mday=12, tm_hour=20, tm_min=27, tm_sec=58, tm_wday=4, tm_yday=316, tm_isdst=0) 5. time.strftime(format, t) #將結(jié)構(gòu)化時(shí)間轉(zhuǎn)化為自定義的格式化時(shí)間 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) #北京時(shí)間 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()+60*60))) #東京時(shí)間 6. time.strptime(string, format) # 將自定義時(shí)間(字符串)轉(zhuǎn)化為結(jié)構(gòu)時(shí)間 print(time.strptime("2023-1-11 1:2:3", "%Y-%m-%d %H:%M:%S")) # 將日常格式化時(shí)間轉(zhuǎn)為結(jié)構(gòu)化時(shí)間 print(time.strptime("2023-1-11", "%Y-%m-%d")) # 將日常格式化時(shí)間轉(zhuǎn)為結(jié)構(gòu)化時(shí)間 7. time.ctime(secs) # 將一個(gè)時(shí)間戳轉(zhuǎn)變?yōu)橐粋€(gè)結(jié)構(gòu)化時(shí)間 print(time.ctime(123)) # Thu Jan 1 08:02:03 1970 print(time.ctime(time.time() + 60 * 60)) # Thu Oct 20 11:28:32 2023 8. time.mktime(t) # 將所給結(jié)構(gòu)化時(shí)間轉(zhuǎn)化為時(shí)間戳 print(time.mktime(time.localtime(time.time()))) # 1666233100.0 print(time.time()) # 1666233100.5075898 # 兩行的效果是一樣的 # 求一個(gè)指定時(shí)間的時(shí)間戳 print(time.mktime(time.strptime('2023-2-3', '%Y-%m-%d'))) # 1580659200.0
三. datetime
datetime比time高級(jí)了不少,可以理解為datetime基于time進(jìn)行了封裝,提供了更多實(shí)用的函數(shù),主要包含一下幾類(lèi):
- timedelta:主要用于計(jì)算時(shí)間跨度
- time:只關(guān)注時(shí)間
- date:只關(guān)注日期
- datetime:同時(shí)有時(shí)間和日期
在實(shí)際使用中,用得比較多的是datetime.datetime和datetime.timedelta,另外兩個(gè)datetime.date和datetime.time實(shí)際使用和datetime.datetime并無(wú)太大差別。
1.datetime.datetime
datetime.datetime 實(shí)例化后主要會(huì)有以下屬性及常用方法:
time_now = datatime.datetime.now() #實(shí)例化 datetime.year datetime.month datetime.day datetime.hour datetime.minute datetime.second datetime.microsecond datetime.tzinfo():時(shí)區(qū) datetime.date():返回date對(duì)象 datetime.time():返回time對(duì)象 datetime.replace(name=value) datetime.timetuple():返回time.struct_time 對(duì)象 datetime.strftime(format):按照f(shuō)ormat進(jìn)行格式化輸出 #除了實(shí)例本身具有的方法,類(lèi)本身也提供了很多好用的方法: datetime.strptime(date_string,format): 給定時(shí)間格式解析字符串 datetime.now([tz]):當(dāng)前時(shí)間默認(rèn) localtime datetime.today():當(dāng)前時(shí)間
2.datetime.timedelta
date.timedelta(3) ,前進(jìn)3天
date.timedelta(-3) ,后退3天
date.timedelta(hour = 3) ,前進(jìn)3小時(shí)
date.timedelta(minutes = 3) ,前進(jìn)3分鐘
import time import datetime dt = datetime.datetime.now() print(dt.timestamp()) print(dt.year) print(dt.month) print(dt.day) print(dt.hour) print(dt.minute) print(dt.second) print(dt.microsecond) print(dt.tzinfo) print(dt.time()) print(dt.date()) print(dt.strftime("%Y-%m-%d %H:%M:%S")) # 2023-1-31 13:42:16 print(datetime.datetime.strptime('2023-1-20 1:1:1', "%Y-%m-%d %H:%M:%S")) delta = datetime.timedelta(11) print(dt + delta) print((dt + delta).strftime("%Y-%m-%d %H:%M:%S")) print((dt - delta).strftime("%Y-%m-%d %H:%M:%S")) print('....') print(datetime.datetime.now()) #返回 2023-1-20 13:40:29.151057 print(datetime.date.fromtimestamp(time.time()) ) # 時(shí)間戳直接轉(zhuǎn)成日期格式 2023-1-20 print(datetime.datetime.now()) print(datetime.datetime.now() + datetime.timedelta(3)) #當(dāng)前時(shí)間+3天 print(datetime.datetime.now() + datetime.timedelta(-3)) #當(dāng)前時(shí)間-3天 print(datetime.datetime.now() + datetime.timedelta(hours=3)) #當(dāng)前時(shí)間+3小時(shí) print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #當(dāng)前時(shí)間+30分 print(datetime.date.fromtimestamp(time.time())) # 2023-1-20
到此這篇關(guān)于關(guān)于python中time和datetime的區(qū)別與用法的文章就介紹到這了,更多相關(guān)time和datetime的區(qū)別與用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
只需要100行Python代碼就可以實(shí)現(xiàn)的貪吃蛇小游戲
貪吃蛇小游戲相信80、90后小時(shí)候肯定都玩過(guò),那么你知道如果通過(guò)Python來(lái)實(shí)現(xiàn)嗎?今天就來(lái)教大家,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Django之使用內(nèi)置函數(shù)和celery發(fā)郵件的方法示例
這篇文章主要介紹了Django之使用內(nèi)置函數(shù)和celery發(fā)郵件的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解
這篇文章主要介紹了Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12python 去除txt文本中的空格、數(shù)字、特定字母等方法
今天小編就為大家分享一篇python 去除txt文本中的空格、數(shù)字、特定字母等方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python中的np.argmin()和np.argmax()函數(shù)用法
這篇文章主要介紹了Python中的np.argmin()和np.argmax()函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06python 實(shí)現(xiàn)提取某個(gè)索引中某個(gè)時(shí)間段的數(shù)據(jù)方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)提取某個(gè)索引中某個(gè)時(shí)間段的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python實(shí)現(xiàn)2014火車(chē)票查詢(xún)代碼分享
學(xué)習(xí)習(xí)PYTHON開(kāi)始,實(shí)現(xiàn)了一個(gè)火車(chē)票查詢(xún)的小功能,希望能幫大家買(mǎi)到回家的票2014-01-01