關(guān)于python中time和datetime的區(qū)別與用法
一. Python中表示時間的兩種方式:
- 時間戳:相對于1970.1.1 00:00:00以秒計算的偏移量,唯一的
- 時間元組struct_time:共有9個元素> tm_year:年1-12> tm_mon:月1-12> tm_mday:日1-31> tm_hour:時0-23> tm_min:分0-59> tm_sec:秒0-59> tm_wday:星期0-6(0表示周日)> tm_day:一年中的第幾天1-366> tm_isdst:是否是夏令,默認為-1
二. time
1. time.time() #當前時間戳, 沒參數(shù),唯一值
2. time.sleep(secs) #暫停幾秒
3. time.gmtime(secs) #無參得到當前格林尼治時間,有時間戳參數(shù)就轉(zhuǎn)為格林尼治結(jié)構(gòu)時間
4. time.localtime(secs) #無參得到local結(jié)構(gòu)化時間, 有時間戳參數(shù)就轉(zhuǎn)為local結(jié)構(gòu)化時間
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)化時間轉(zhuǎn)化為自定義的格式化時間
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) #北京時間
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()+60*60))) #東京時間
6. time.strptime(string, format) # 將自定義時間(字符串)轉(zhuǎn)化為結(jié)構(gòu)時間
print(time.strptime("2023-1-11 1:2:3", "%Y-%m-%d %H:%M:%S")) # 將日常格式化時間轉(zhuǎn)為結(jié)構(gòu)化時間
print(time.strptime("2023-1-11", "%Y-%m-%d")) # 將日常格式化時間轉(zhuǎn)為結(jié)構(gòu)化時間
7. time.ctime(secs) # 將一個時間戳轉(zhuǎn)變?yōu)橐粋€結(jié)構(gòu)化時間
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)化時間轉(zhuǎn)化為時間戳
print(time.mktime(time.localtime(time.time()))) # 1666233100.0
print(time.time()) # 1666233100.5075898 # 兩行的效果是一樣的
# 求一個指定時間的時間戳
print(time.mktime(time.strptime('2023-2-3', '%Y-%m-%d'))) # 1580659200.0
三. datetime
datetime比time高級了不少,可以理解為datetime基于time進行了封裝,提供了更多實用的函數(shù),主要包含一下幾類:
- timedelta:主要用于計算時間跨度
- time:只關(guān)注時間
- date:只關(guān)注日期
- datetime:同時有時間和日期
在實際使用中,用得比較多的是datetime.datetime和datetime.timedelta,另外兩個datetime.date和datetime.time實際使用和datetime.datetime并無太大差別。
1.datetime.datetime
datetime.datetime 實例化后主要會有以下屬性及常用方法:
time_now = datatime.datetime.now() #實例化 datetime.year datetime.month datetime.day datetime.hour datetime.minute datetime.second datetime.microsecond datetime.tzinfo():時區(qū) datetime.date():返回date對象 datetime.time():返回time對象 datetime.replace(name=value) datetime.timetuple():返回time.struct_time 對象 datetime.strftime(format):按照format進行格式化輸出 #除了實例本身具有的方法,類本身也提供了很多好用的方法: datetime.strptime(date_string,format): 給定時間格式解析字符串 datetime.now([tz]):當前時間默認 localtime datetime.today():當前時間
2.datetime.timedelta
date.timedelta(3) ,前進3天
date.timedelta(-3) ,后退3天
date.timedelta(hour = 3) ,前進3小時
date.timedelta(minutes = 3) ,前進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()) ) # 時間戳直接轉(zhuǎn)成日期格式 2023-1-20
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(3)) #當前時間+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #當前時間-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #當前時間+3小時
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #當前時間+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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法
這篇文章主要介紹了Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法,本文講解使用dict和lambda結(jié)合實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用,給出了不帶參數(shù)和帶參數(shù)的實例,需要的朋友可以參考下2015-03-03
詳解將Pandas中的DataFrame類型轉(zhuǎn)換成Numpy中array類型的三種方法
這篇文章主要介紹了詳解將Pandas中的DataFrame類型轉(zhuǎn)換成Numpy中array類型的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2019-07-07
Python subprocess模塊功能與常見用法實例詳解
這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實例形式詳細分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下2018-06-06
Swin?Transformer模塊集成到Y(jié)OLOv5目標檢測算法中實現(xiàn)
這篇文章主要為大家介紹了Swin?Transformer模塊集成到Y(jié)OLOv5目標檢測算法中實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
Python數(shù)據(jù)分析之雙色球統(tǒng)計兩個紅和藍球哪組合比例高的方法
這篇文章主要介紹了Python數(shù)據(jù)分析之雙色球統(tǒng)計兩個紅和藍球哪組合比例高的方法,涉及Python數(shù)值運算及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-02-02

