Python datetime和time模塊用法介紹

本文將詳細闡述Python datetime和time模塊的用法和應用場景,以幫助讀者更好地理解和運用這兩個模塊。

一、datetime模塊

datetime模塊提供了處理日期和時間的函數和類,它能夠支持日期和時間的計算、格式化和比較等操作。

1、日期和時間的表示

在datetime模塊中,日期由date類表示,時間由time類表示,日期和時間則由datetime類表示。


# 導入datetime模塊
import datetime

# 創建日期對象
d = datetime.date(2022, 12, 1)
# 創建時間對象
t = datetime.time(20, 30, 40)
# 創建日期時間對象
dt = datetime.datetime(2022, 12, 1, 20, 30, 40)

print(d)
print(t)
print(dt)

運行結果如下:


2022-12-01
20:30:40
2022-12-01 20:30:40

2、日期和時間的計算

datetime模塊提供了一些方法,用於對日期和時間進行加減計算。

(1) 天數計算

date類和datetime類提供的方法中,可用於將指定天數加減至當前日期的分別為:

  • date類:timedelta()方法。
  • datetime類:today()和now()方法。

示例:


# 將2022年12月1日加50天
d1 = datetime.date(2022, 12, 1)
td = datetime.timedelta(days=50)
d2 = d1 + td
print(d2)

# 獲取當前日期時間
now1 = datetime.datetime.now()
now2 = datetime.datetime.today()
print(now1)
print(now2)

運行結果如下:


2023-01-20
2022-12-01 22:18:57.146594
2022-12-01 22:18:57.146594

(2) 秒數計算

time類和datetime類提供的方法中,可用於將指定秒數加減至當前時間的分別為:

  • time類:timedelta()方法。
  • datetime類:now()和time()方法。

示例:


# 將當前時間加100秒
t1 = datetime.datetime.now().time()
td = datetime.timedelta(seconds=100)
t2 = (datetime.datetime.combine(datetime.date.today(), t1) + td).time()
print(t2)

# 獲取當前時間
now1 = datetime.datetime.now()
now2 = datetime.datetime.utcnow().time()
print(now1.time())
print(now2)

運行結果如下:


22:20:50
22:20:50.400076
22:20:50.400301

3、日期和時間的格式化

datetime模塊提供了strftime()和strptime()兩個方法,用於將日期和時間對象轉換為指定格式的字符串或將字符串轉換為日期和時間對象。

(1) 將日期和時間對象轉換為字符串

strftime()方法可以將日期和時間對象按照指定格式轉換成字符串。

示例:


# 將日期時間對象轉換成字符串
dt = datetime.datetime(2022, 12, 1, 20, 30, 40)
str_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(str_dt)

# 將日期對象轉換成字符串
dt = datetime.date(2022, 12, 1)
str_d = dt.strftime("%Y%m%d")
print(str_d)

# 將時間對象轉換成字符串
t = datetime.time(20, 30, 40)
str_t = t.strftime("%H%M%S")
print(str_t)

運行結果如下:


2022-12-01 20:30:40
20221201
203040

(2) 將字符串轉換為日期和時間對象

strptime()方法可以將由字符串表示的日期和時間轉換成日期和時間對象。

示例:


# 將字符串轉換成日期時間對象
str_dt = "2022-12-01 20:30:40"
dt = datetime.datetime.strptime(str_dt, "%Y-%m-%d %H:%M:%S")
print(dt)

# 將字符串轉換成日期對象
str_d = "20221201"
d = datetime.datetime.strptime(str_d, "%Y%m%d").date()
print(d)

# 將字符串轉換成時間對象
str_t = "203040"
t = datetime.datetime.strptime(str_t, "%H%M%S").time()
print(t)

運行結果如下:


2022-12-01 20:30:40
2022-12-01
20:30:40

二、time模塊

time模塊主要用於處理時間,它提供了一些函數和類,用於對時間進行操作。

1、時間的獲取

time模塊提供了幾個函數,可以獲取當前時間和CPU時間等。

(1) 獲取當前時間

time()和ctime()函數可以獲取當前時間。


# 獲取當前時間
import time
t1 = time.time()
t2 = time.ctime()
print(t1)
print(t2)

運行結果如下:


1638505771.0135095
Sat Dec  3 11:09:31 2022

(2) 獲取CPU時間

clock()函數可以獲取CPU時間,也就是程序執行時間。


# 獲取CPU時間
t1 = time.clock()
time.sleep(1)
t2 = time.clock()
print(t2 - t1)

運行結果如下:


1.000259612

2、時間的格式化

time模塊提供了strftime()函數,用於將時間按照指定格式輸出。

示例:


# 將時間按照指定格式輸出
t = time.localtime()
str_t = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(str_t)

運行結果如下:


2022-12-04 14:27:08

3、時間的轉換

time模塊提供了gmtime()和localtime()函數,用於將時間轉換為本地時間和世界標準時間(UTC)。

(1) 將時間轉換為本地時間

localtime()函數可以把一個時間戳(通常是由time()函數返回的值)轉換為當前時區的struct_time。

示例:


# 將時間轉換為本地時間
t = time.time()
lt = time.localtime(t)
print(lt)

運行結果如下:


time.struct_time(tm_year=2022, tm_mon=12, tm_mday=4, tm_hour=14, tm_min=30, tm_sec=40, tm_wday=6, tm_yday=338, tm_isdst=0)

(2) 將時間轉換為UTC時間

gmtime()函數可以把一個時間戳(通常是由time()函數返回的值)轉換為UTC時區的struct_time。

示例:


# 將時間轉換為UTC時間
t = time.time()
utc_t = time.gmtime(t)
print(utc_t)

運行結果如下:


time.struct_time(tm_year=2022, tm_mon=12, tm_mday=4, tm_hour=6, tm_min=30, tm_sec=40, tm_wday=6, tm_yday=338, tm_isdst=0)

三、小結

本文綜合闡述了Python datetime和time模塊的用法和應用場景。datetime模塊能夠支持日期和時間的計算、格式化和比較等操作,time模塊則主要用於處理時間。希望本文能為讀者在使用Python時提供一些幫助。

原創文章,作者:QCCSW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/374845.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QCCSW的頭像QCCSW
上一篇 2025-04-28 13:17
下一篇 2025-04-28 13:17

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python for循環求1到100的積

    Python中的for循環可以方便地遍歷列表、元組、字典等數據類型。本文將以Python for循環求1到100的積為中心,從多個方面進行詳細闡述。 一、for循環語法 Pytho…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29

發表回復

登錄後才能評論