Python中三種時(shí)間格式轉(zhuǎn)換的方法
一 時(shí)間元組
1. 時(shí)間元組和時(shí)間戳的互化
import time,datetime
# 獲取當(dāng)前時(shí)間的時(shí)間元組
t = time.localtime()
print(t)
# 時(shí)間元組轉(zhuǎn)時(shí)間戳
timestamp = time.mktime(t)
print(timestamp)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15, tm_sec=41, tm_wday=2, tm_yday=296, tm_isdst=0)
# 1571843741.0
# 獲取時(shí)間戳
ts = time.time()
# 時(shí)間戳轉(zhuǎn)時(shí)間元組
# 方法一
print('法一:',time.localtime(ts))
# 方法二
print('法二:',time.gmtime(ts))
# 兩種方法的區(qū)別只有小時(shí)的輸出不同,法一的小時(shí)是24小時(shí)制的,法二是12小時(shí)的
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)2. 時(shí)間元組和字符串的互化
import time
# 字符串轉(zhuǎn)時(shí)間元組
# 字符類型的時(shí)間
t1 = '2013-10-10 23:40:00'
# 轉(zhuǎn)為時(shí)間元組,時(shí)間元組本身沒有直接的用處,但它可以輸出時(shí)間的年月日時(shí)分秒等
# 注意這里的字符串除了%Y %m %d %H %M %S分別代表字符串中的年月日時(shí)分秒,
# 這里的格式必須和字符串一模一樣,由于字符串中間有空格,它也不能少
timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
print('并沒有直接的用處:', timeArray)
print('輸出年:', timeArray.tm_year)
print('輸出月:', timeArray.tm_mon)
print('輸出日:', timeArray.tm_mday)
print('輸出時(shí):', timeArray.tm_hour)
print('輸出分:', timeArray.tm_min)
print('輸出秒:', timeArray.tm_sec)
# 當(dāng)用%Y時(shí)表示的是年份的全稱,當(dāng)用%y時(shí)表示簡稱,
# 月份和小時(shí)沒有這種用法,它們只用小寫,時(shí)分秒的貌似只用大寫
t2 = '19/09/05 22/16'
timeArray = time.strptime(t2, "%y/%m/%d %H/%M")
print(timeArray)
# 并沒有直接的用處: time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
# 輸出年: 2013
# 輸出月: 10
# 輸出日: 10
# 輸出時(shí): 23
# 輸出分: 40
# 輸出秒: 0
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=5, tm_hour=22, tm_min=16, tm_sec=0, tm_wday=3, tm_yday=248, tm_isdst=-1)
# 時(shí)間元組轉(zhuǎn)字符串
ts = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(ts)
# 2019/09/05 22:16:00二 字符串與時(shí)間戳
字符串與時(shí)間戳不能直接轉(zhuǎn)化,要通過時(shí)間元組來完成,時(shí)間元組是中介.
轉(zhuǎn)化圖:

三 時(shí)間的加減用法
時(shí)間元組不能加減,要用datetime格式的時(shí)間才能加減.下面是字符串轉(zhuǎn)為datetime后,進(jìn)行時(shí)間加減運(yùn)算.
import datetime start = '2019-07-28 00:00:08' end = '2019-07-29 00:50:03' # 先將字符串轉(zhuǎn)化為時(shí)間格式 a = datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S") b = datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S") print(a,b) # 只能直接計(jì)算秒和天,其它的不能 # seconds獲得的秒只是時(shí)間差中的小時(shí)、分鐘和秒部分的和,并沒有包含時(shí)間差的天數(shù) print((b-a).seconds) # total_seconds來獲取準(zhǔn)確的時(shí)間差,并將時(shí)間差轉(zhuǎn)換為秒 print((b-a).total_seconds()) # 如果不夠一天,會(huì)輸出0 print((b-a).days) # 時(shí)間相加 c = a + datetime.timedelta(hours=5,seconds=68) d = a - datetime.timedelta(days=69,minutes=89) print(c,d) # 2019-07-28 00:00:08 2019-07-29 00:50:03 # 2995 # 89395.0 # 1 # 2019-07-28 05:01:16 2019-05-19 22:31:08
到此這篇關(guān)于Python中三種時(shí)間格式轉(zhuǎn)換的方法的文章就介紹到這了,更多相關(guān)Python 時(shí)間格式轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 實(shí)現(xiàn)在shell窗口中編寫print不向屏幕輸出
這篇文章主要介紹了python 實(shí)現(xiàn)在shell窗口中編寫print不向屏幕輸出的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
使用Python實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測(cè)
廣告點(diǎn)擊率是指有多少用戶點(diǎn)擊了您的廣告與有多少用戶查看了您的廣告的比率,本文主要為大家介紹了如何使用Python實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測(cè),感興趣的小伙伴可以了解下2023-10-10
異步任務(wù)隊(duì)列Celery在Django中的使用方法
對(duì)于網(wǎng)站來說,給用戶一個(gè)較好的體驗(yàn)是很重要的事情,其中最重要的指標(biāo)就是網(wǎng)站的瀏覽速度。因此服務(wù)端要從各個(gè)方面對(duì)網(wǎng)站性能進(jìn)行優(yōu)化,這篇文章主要介紹了異步任務(wù)隊(duì)列Celery在Django中的使用方法,感興趣的小伙伴們可以參考一下2018-06-06
Python實(shí)現(xiàn)創(chuàng)建模塊的方法詳解
導(dǎo)入一個(gè)模塊,我們一般都會(huì)使用?import?關(guān)鍵字,但有些場(chǎng)景下?import?難以滿足我們的需要。所以除了?import?之外還有很多其它導(dǎo)入模塊的方式,下面就來介紹一下2022-07-07

