程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

自學Python 48 日期和時間函數(三)

編輯:Python

Python 日期和時間函數(三)


文章目錄

  • Python 日期和時間函數(三)
  • 三、使用 datetime模塊
    • 1.類 date
    • 2.類Time
    • 3.類datetime


本篇在Python日期和時間函數(一)和(二)的基礎上,繼續講解Python日期和時間函數的知識。


三、使用 datetime模塊

在Python程序中,datetime是一個使用面向對象編程設計的模塊,可以在 Python 軟件
項目中使用日期和時間。相比於time模塊,datetime模塊的接口更加直觀、更加容易被調用。
在模塊datetime中定義了兩個常量: datetime.MINYEAR和 datetime.MAXYEAR,分別
表示 datetime 所能表示的最小、最大年份。其中,MINYEAR=1, MAXYEAR = 9999。
在模塊datetime中定義了如下表所示的類。

類名稱描述datetime.date表示日期的類,常用的屬性有year,month和daydatetime.time表示時間的類,常用的屬性有 hour、 minute、second 和 microseconddatetime.datetime表示日期時間datetime.timedelta表示時間間隔,即兩個時間點之間的長度datetime.tzinfo時區有關的相關信息

注意:上面列出的類型的對象都是不可變(immutable)的。

1.類 date

類date表示一個日期、曰期由年、月、日組成,其構造函數如下所示:

class datetime.date(year,month,day)

● year的范圍是[MINYEAR,MAXYEAR],即[1,9999]。
● month的范圍是[1,12]。月份是從1開始的,不是從0開始的。
● day的最大值根據給定的year, month參數來決定,例如閏年2月份有29天。
在類 date 中定義了加下表所示的常用方法和屬性。

方法和屬性描述date.max、date.mindate對象所能表示的最大、最小日期date.resolutiondate對象表示日期的最小單位,這裡是天date.today()返回一個表示當前本地日期的date對象date.fromtimestamp(timestamp)根據給定的時間戳,返回一個date對象datetime.fromordinal(ordinal)將 Gregorian日歷時間轉換為 date對象(Gregorian是一種日歷表示方法,類似於我國的農歷,歐美國家使用比較多)

例如在下面的實例文件中,演示了類date 實現日期操作的過程:

from datetime import *
import time
print('date.max:', date.max)
print('date.min:', date.min)
print('date.today():',date.today())
print('date.fromtimestamp():',date.fromtimestamp (time.time()))

執行後會輸出:

在類date中提供了如下表所示的常用實例方法和屬性。

方法和屬性描述date.year、date.month、date.day年、月、日date.replace(year, month, day)生成一個新的日期對象,用參數指定的年、月、日代替原有對象中的屬性。(原有對象仍保持不變)date.timetuple()返回日期對應的time.struct_time對象date.toordinal()返回日期對應的 Gregorian Calendar日期date.weekday()返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此類推data.isoweekday()返回weekday,如果是星期一,返回1;如果是星期2,返回2,返回2,以此類推date.isocalendar()返回格式如(year, month,day)的元組date.isoformat()返回格式如‘YYYY-MM-DD’ 的字符串date.strftime(fmt)自定義格式化字符串

例如在下面的實例文件中,演示了使用類date的實例方法和屬性實現日期操作的過程:

from datetime import *
import time
now = date(2022,7,30 )
tomorrow = now.replace(day = 31)
print('now:',now,'tomorrowe:',tomorrow)
print('timetuple():',now.timetuple())
print('weekday():',now.weekday())
print('isoweekday():',now.isoweekday())
print('isocalendar()):',now.isocalendar())
print('isoformat():',now.isoformat())

執行後會輸出:

在Pytho程序中,類date還可以對某些日期操作進行重載,它允許我們對日期進行如下所示的操作:

date2 = date1 + timedelta #日期加上一個間隔,返回一個新的日期對象(timedelta將在下面介紹,表示時間間隔)
date2 = date1 - timedelta #日期隔去間隔,返回一個新的日期對象
timedelta = date1 - date2 #兩個日期相減,返回一個的間間隔對象
date1 < date2 #兩個日期進行比較

注意:當對日期進行操作時,需要防止日期超出它所能表示的范圍。

2.類Time

在Python程序中,類time表示時間,由時、分、秒以及微秒組成。類time的構造函數如下所示:

Class datetime.time (hour[,minute[ ,second[,microsecond[,tzinfo] ] ] )

參數說明如下表所示:

參數名稱描述參數tzinfo表示時區信息參數hour取值范圍為[0, 24)參數minute取值范圍為[0, 60)參數second取值范圍為[0, 60)參數microsecond取值范圍為[0, 1000000)

類time中的常用屬性如下所示:
● time.min、time.max: time 類所能表示的最小、最大時間。其中,time.min = time(0,0,0, 0),time.max = time(23, 59, 59, 999999)
● time.resolution: 時間的最小單位,這裡是1微秒。
類time中常用的實例方法和屬性如下表所示:

方法和屬性描述time.hour、time.minute、time.second、 time.microsecond時、分、秒、微秒time.tzinfo時區信息time.replace([ hour[, minute[ , second[,microsecond[ ,tzinfo] ] ] ] ] )創建一個新的時間對象,用參數指定的時、分、秒、微秒代替原有對象中的屬性(原有對象仍保持不變)time.isoformat()返回型如“HH:MM:SS”格式的字符串表示time.strftime(fmt)返回自定義格式化字符串

例如在下面的實例文件中,演示了使用類 time實現日期操作的過程。

from datetime import *
tm = time (20, 54,10)
print('tm: ',tm)
print('hour: %d,minute: %d,second: %d,microsecond: %d' % (tm.hour,tm.minute,tm.second,tm.microsecond))
tml = tm.replace(hour = 21)
print('tml:', tml)
print('isoformat():', tm.isoformat())

執行後會輸出:

3.類datetime

在Python程序中,類 datetime是 date與time的結合體,包含date與time的所有功能信息。類datetime 的構造函數如下所示:

datetime.datetime(year, month, day[, hour[, minute[, second[,microsecond[,tzinfo] ] ] ] ] )

類 datetime各個參數的含義與 date和 time構造函數中的一樣,讀者需要注意參數值的取值范圍。
類 datetime中定義的常用類屬性和方法如下表所示:

方法和屬性描述datetime.min、datetime.maxatetime所能表示的最小值與最大值datetime.resolutiondatetime的最小單位datetime.today()返回一個表示當前本地時間的 datetime對象datetime.now([tz])返回一個表示當前本地時間的 datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間datetime.utcnow()返回一個當前utc時間的 datetime對象datetime.fromtimestamp(timestamp[,tz])根據時間戳創建一個datetime對象,參數tz指定時區信息datetime.utcfromtimestamp(timestamp)根據時間戳創建一個 datetime對象datetime.combine(date, time)根據date和time,創建一個datetime 對象datetim.strptime(date_string, format)將格式字符串轉換為datetime對象

例如在下面的實例文件中,演示了使用類datetime實現日期操作的過程:

from datetime import *
import time
print('datetime.max:', datetime.max)
print('datetime.min:', datetime.min)
print('datetime.resolution:',datetime.resolution)
print('today():',datetime.today())
print('now():',datetime.now())
print('utcnowl():',datetime.utcnow())
print('fromtimestamp(tmstmp):',datetime.fromtimestamp(time.time()) )
print('utcfromtimestamp(tmstmp):',datetime.utcfromtimestamp(time.time()))

執行後會輸出:

因為在類datetime中提供的實例方法與屬性和date和time中的類似,所以在此不再講解這些相似的方法與屬性。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved