溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中time和datetime的區(qū)別及用法是什么

發(fā)布時(shí)間:2023-03-28 11:58:49 來(lái)源:億速云 閱讀:241 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“python中time和datetime的區(qū)別及用法是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一. 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í)間戳, 沒參數(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ù),主要包含一下幾類:

  • 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í)例本身具有的方法,類本身也提供了很多好用的方法:

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

“python中time和datetime的區(qū)別及用法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI