Python中的DateTime和TimeDelta詳解
前言
在Python中,date,time和datetime類提供了許多函數(shù)來處理日期、時間和時間間隔(time interval)。
Date和DateTime是Python中的對象,因此在操作它們時,實際上是在操作對象,而不是字符串或時間戳。
每當(dāng)您操縱日期或時間時,都需要導(dǎo)入DateTime函數(shù)。
一、DateTime類
Python中的DateTime類主要分為5類。
- date —日期(月,日,年)
- time-一天中時間(小時,分鐘,秒,微秒)
- DateTime-時間和日期的組合(月,日,年,小時,秒,微秒)
- time delta —用于操縱日期的時間段
- tzinfo —處理時區(qū)的抽象類
二、使用
1.引入庫
代碼如下(示例):
# 在為DateTime運行代碼之前,請務(wù)必導(dǎo)入date-time模塊 from datetime import date from datetime import time from datetime import datetime # 這些import語句是Python庫中預(yù)定義的功能,可讓您無需編寫任何代碼即可操縱日期和時間。 # 創(chuàng)建日期對象的實例。 def main(): today = date.today() print("今天的日期是:", today) # 打印日期并運行代碼。 main()
2.使用date.today()打印日期
date.today函數(shù)具有與之關(guān)聯(lián)的幾個屬性。我們可以單獨打印日/月/年以及其他內(nèi)容
代碼如下(示例):
from datetime import date from datetime import time from datetime import datetime def main(): today = date.today() print("今天的日期是:", today) # 打印日期的拆分格式 print("拆分日期:", today.year, today.month, today.day) main()
from datetime import date from datetime import time from datetime import datetime def main(): today = date.today() wd = today.weekday() days = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"] print("今天是星期幾:",wd) print("今天應(yīng)該是星期幾呢?", days[wd]) main()
3.Python當(dāng)前日期和時間:now() today()
代碼示例如下:
# 像日期對象一樣,我們在Python中也可以使用日期時間(datetime)對象。它給出日期和時間小時、分鐘、秒和毫秒。 from datetime import date from datetime import time from datetime import datetime def main(): today = datetime.now() print("當(dāng)前時間是:",today) main()
# 使用datetime對象,您還可以調(diào)用time類。 # 假設(shè)我們只想打印當(dāng)前時間而不顯示日期。 from datetime import date from datetime import time from datetime import datetime def main(): t = datetime.time(datetime.now()) print("當(dāng)前時間是:",t) main()
我們將工作日索引應(yīng)用到工作日的ArrayList中,以了解今天是哪一天
根據(jù)當(dāng)前工作日的不同,為工作日的運算符(wd)分配(0–6)編號。在這里,我們聲明了幾天的列表數(shù)組(星期一,星期二,星期三…星期日)。 使用該索引值可以知道是哪一天。在我們的例子中,它是#3,代表星期四,因此在輸出中,它將打印出“今天是星期四”。
4.如何使用 Strftime()格式化日期和時間輸出
到目前為止,我們已經(jīng)了解了如何在Python中使用DateTime和Date對象。我們將進(jìn)一步學(xué)習(xí)如何使用格式化功能來格式化時間和日期。
1. 首先,我們將看到一個簡單的如何格式化年份的步驟。通過一個例子來理解。
from datetime import date from datetime import time from datetime import datetime def main(): now = datetime.now() print(now.strftime("%Y")) main()
我們使用了“strftime函數(shù)”用于格式化。 此函數(shù)使用不同的控制碼提供輸出。 每個控制代碼類似于不同的參數(shù),例如年,月,周日和日期[(%y /%Y-年),(%a /%A-工作日,(%b /%B-月),(%d-月中的天)]]。 在我們的例子中,(“%Y”)類似于年份,它打印出帶有世紀(jì)的完整年份(例如,2023年)。
2.現(xiàn)在,如果將(“%Y”)替換為小寫字母(即“%y”)并執(zhí)行代碼,則僅輸出(23),而不顯示(2023)。年份的世紀(jì)將不會顯示
from datetime import date from datetime import time from datetime import datetime def main(): now = datetime.now() print(now.strftime("%y")) main()
3.Strftime函數(shù)可以分別聲明日期,日,月和年。同樣,在strftime函數(shù)中對控制代碼進(jìn)行小的更改后,即可設(shè)置文本樣式的格式。
from datetime import date from datetime import time from datetime import datetime def main(): now = datetime.now() print(now.strftime("%Y %B %d,%a")) main()
在strftime函數(shù)內(nèi)部,如果將(%a)替換為大寫字母A,即(%A),輸出將輸出為“Thursday”,而不是縮寫“Thu”。
4.借助“strftime”函數(shù),我們還可以檢索本地系統(tǒng)時間,日期或日期時間。
%C-表示本地日期和時間
%x-表示本地日期
%X-表示本地時間
from datetime import date from datetime import time from datetime import datetime def main(): now = datetime.now() print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) main()
5.“strftime”函數(shù)允許您以24小時格式或12小時格式調(diào)用時間。
from datetime import date from datetime import time from datetime import datetime def main(): now = datetime.now() print(now.strftime("%I:%M:%S %p")) print(now.strftime("%H:%M")) main()
總結(jié)
使用“strftime”函數(shù)更改年份的格式 分別打印日期、日期、月份和年份, 格式化時間為12小時或24小時模式
5.如何使用Timedelta對象
使用timedelta對象,您可以計算未來和過去的時間。換句話說,預(yù)測任何特殊的日期,日期或時間都是一個時間跨度。
請記住,此功能不是用于打印時間或日期,而是用于計算未來或過去的時間內(nèi)容。讓我們看一個例子,以更好地理解它。
1.要運行Timedelta對象,您需要先聲明import語句,然后執(zhí)行代碼
from datetime import timedelta print(timedelta(days = 365, hours = 8, minutes = 15))
2.讓我們獲取今天的日期和時間,以檢查我們的導(dǎo)入聲明是否運行良好。執(zhí)行代碼后,它會打印出今天的日期
from datetime import datetime from datetime import timedelta print(timedelta(days = 365, hours = 8, minutes = 15)) print("今天是:" ,str(datetime.now()))
3.我們將看到如何通過delta對象計算離現(xiàn)在now()一年后的日期。當(dāng)我們運行代碼時,它將給出預(yù)期的輸出。
from datetime import datetime from datetime import timedelta print(timedelta(days = 365, hours = 8, minutes = 15)) print("今天是:" ,str(datetime.now())) print("一年之后的今天是:", str(datetime.now() + timedelta(days = 365)))
4.如何使用時間增量(time delta)從當(dāng)前日期和時間計算未來日期的另一個示例
from datetime import datetime from datetime import timedelta print(timedelta(days = 365, hours = 8, minutes = 15)) print("今天是:" ,str(datetime.now())) print("一個星期后四天的是:", str(datetime.now() + timedelta(weeks = 1, days = 4)))
總結(jié)
使用timedelta對象,您可以計算未來和過去的時間 計算從當(dāng)前時間到特殊日期(生日)剩余的總天數(shù) 計算從當(dāng)前時間算起的特定天(生日)經(jīng)過的總天數(shù)
到此這篇關(guān)于Python中的DateTime和TimeDelta詳解的文章就介紹到這了,更多相關(guān)Python中的日期時間函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于SQLAlchemy實現(xiàn)操作MySQL并執(zhí)行原生sql語句
這篇文章主要介紹了基于SQLAlchemy實現(xiàn)操作MySQL并執(zhí)行原生sql語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06OpenCV圖像形態(tài)學(xué)的實現(xiàn)
本文主要介紹了OpenCV圖像形態(tài)學(xué)的實現(xiàn),包括腐蝕、膨脹、開運算、閉運算、梯度運算、頂帽運算和黑帽運算,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04Python利用contextvars實現(xiàn)管理上下文變量
Python?在?3.7?的時候引入了一個模塊:contextvars,從名字上很容易看出它指的是上下文變量。所以本文就來和大家詳細(xì)講講如何使用contextvars實現(xiàn)管理上下文變量,需要的可以參考一下2022-07-07Python面試之os.system()和os.popen()的區(qū)別詳析
Python調(diào)用Shell,有兩種方法:os.system(cmd)或os.popen(cmd)腳本執(zhí)行過程中的輸出內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Python面試之os.system()和os.popen()區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-06-06