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