1、datetime模塊:日期包含年、月、日、小時、分鍾、秒和微秒。datetime 模塊有許多方法可以返回有關日期對象的信息。一般操作就是獲取時間是哪年哪月什么時間端,處於那個時區范圍,幾個操作時間之間的間隔是多少等等。
2、datetime模塊定義了5個類:
序號
類
含義
1
datetime.datetime
表示日期時間的類
2
datetime.timedelta
表示時間間隔,即兩個時間點的間隔
3
datetime.date
表示日期的類
4
datetime.time
表示時間的類
5
datetime.tzinfo
時區的相關信息
其中:1完全可以理解時3和4的整合。
# ---------datetime類(日期時間)操作統計---------------#
x_today=datetime.datetime() # 當前本地時間的datetime對象
print(x_today)
# 結果顯示2021-11-12 19:14:53.984157
x=datetime.datetime.now() # 獲取當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間
print(x)
# 結果顯示2021-11-12 19:14:53.984157
x_utcnow=datetime.datetime.utcnow() # 當前utc時間的datetime對象
print(x_utcnow)
# 結果顯示2021-11-12 14:22:44.318067
x_utcTStamp=
datetime.datetime.utcfromtimestamp(2021 - 11 - 12 - 22 - 9 - 24) # 根據時間戮創建一個datetime對象
print(x_utcTStamp)
# 結果顯示1970-01-01 00:32:23
print(x.date()) # 獲取當前日期
# 結果顯示2021-11-12
print(x.year) # 獲取當前日期--年份
# 結果顯示2021
print(x.month) # 獲取當前日期--月份
# 結果顯示11
print(x.day) # 獲取當前日期--那一天
# 結果顯示12
print(x.hour) # 獲取當前日期--小時
# 結果顯示19
print(x.minute) # 獲取當前日期--分鍾
# 結果顯示14
print(x.second) # 獲取當前日期--秒
# 結果顯示53
print(x.microsecond) # 獲取當前日期--微秒
# 結果顯示984157
print(x.tzinfo)
# 結果顯示None
print(x.now()) # 獲取當前時間
# 結果顯示2021-11-12 19:14:53.984157
print(x.isocalendar()) # 獲取當前(年份、周數、工作日)的元組
# 結果顯示(2021, 45, 5)
print(x.time()) # 獲取當前時間-時:分:秒
# 結果顯示19:14:53.984157
print(x.weekday())
# 結果顯示4
print(x.isoweekday()) # 獲取當前工作日-星期幾
# 結果顯示5
print(x.max) # 獲取最大日期時間
# 結果顯示9999-12-31 23:59:59.999999
print(x.min) # 獲取最小日期時間
# 結果顯示0001-01-01 00:00:00
print(x.resolution) # 獲取日期時間的最小單位
# 結果顯示0:00:00.000001
print(x.timetuple()) # 返回日期對應的time.struct_time對象
# 結果顯示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=10, tm_min=16, tm_sec=33, tm_wday=5, tm_yday=317, tm_isdst=-1)
print(x.utctimetuple()) # 返回日期對應utc的time.struct_time對象
# 結果顯示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=10, tm_min=17, tm_sec=46, tm_wday=5, tm_yday=317, tm_isdst=0)
print(x.toordinal())
# 結果顯示738107
print(x.isoformat()) # 返回根據 ISO 格式化的時間
# 結果顯示
2021-11-13T10:23:57.006094
print(x.ctime()) #返回一個日期時間的C格式字符串,等效於time.ctime(time.mktime(dt.timetuple()))
# 結果顯示Sat Nov 13 10:26:04 2021
print(x.strftime('%S-%M-%H %d-%m-%Y')) #返回自定義格式化字符串
# 結果顯示31-30-10 13-11-2021
# -------date類(日期)操作統計-------------------------#
x2=datetime.date() # 返回一個表示當前本地日期的date對象
print(x2)
# 結果顯示2021-11-12
print(x2.year) # 獲取最大日期范圍
# 結果顯示2021
print(x2.month) # 獲取最大日期范圍
# 結果顯示11
print(x2.day) # 獲取最大日期范圍
# 結果顯示12
print(x2.weekday()) # 獲取當前工作日-星期幾
# 結果顯示4
print(x2.isoweekday()) # 獲取當前工作日-星期幾
# 結果顯示5
print(x2.isocalendar()) # 獲取當前(年份、周數、工作日)的元組
# 結果顯示(2021, 45, 5)
print(x2.isoformat()) # 返回格式如'YYYY-MM-DD’的字符串
# 結果顯示2021-11-12
print(x2.strftime('%Y--%m--%d')) # 自定義格式化字符串
# 結果顯示2021--11--12
print(x2.max) # 獲取最大日期范圍
# 結果顯示9999-12-31
print(x2.min) # 獲取最小日期范圍
# 結果顯示0001-01-01
print(x2.resolution) # 日期的最小單位--天
# 結果顯示1 day, 0:00:00
x2x=x2.replace(2035,10,10) # 生成一個新的日期對象,用參數指定的年,月,日代替原有對象中的屬性。(原有對象仍保持不變)
print(x2x)
# 結果顯示2035-10-10
print(x2)
# 結果顯示2021-11-12
print(x2x.toordinal()) # 返回日期對應的Gregorian Calendar日期
# 結果顯示743186
x_time=x2.timetuple() # 返回日期對應的time.struct_time對象
print(x_time)
# 結果顯示time.struct_time(tm_year=2021, tm_mon=11, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=317, tm_isdst=-1)
print(x_time[1])
# 結果顯示11
# ---------time類(時間)操作統計-------------#
x4=datetime.time(12, 23, 34, tzinfo=None)
print(x4) # 獲取指定時間類對象
# 結果顯示12:23:34
print(x4.hour)
# 結果顯示12
print(x4.minute)
# 結果顯示23
print(x4.second)
# 結果顯示34
print(x4.microsecond)
# 結果顯示0
print(x4.tzinfo) # 獲取時區信息
# 顯示結果None
print(x4.tzname()) # 返回時區名稱
# 顯示結果None
print(x4.min) # 獲取時間類范圍內的--最小時間
# 結果顯示00:00:00
print(x4.max) # 獲取時間類范圍內的--最大時間
# 結果顯示23:59:59.999999
print(x4.resolution) # 獲取時間的最小單位為1微秒
# 結果顯示0:00:00.000001
print(x4.isoformat()) # 返回型如"HH:MM:SS"格式的字符串表示
# 結果顯示12:23:34
print(x4.strftime('%S-%M-%H')) # 返回自定義格式化字符串
# 結果顯示34-23-12
x4X=datetime.time.replace(x4, 15, 12, 46) # 創建一個新的時間對象,用參數指定的時、分、秒、微秒代替原有對象中的屬性(原有對象仍保持不變);
print(x4X)
# 結果顯示15:12:46
print(x4)
# 結果顯示12:23:34
# -----------timedelta類(時間間隔)操作統計---------------#
datetime class timedelta(SupportsAbs[timedelta])表示兩個日期時間對象之間的差異(時間間隔)。支持的加減時間增量,加、減、abs與時間增量比較,乘以除以int此外,datetime 支持兩個 datetime 對象的相減返回一個 timedelta,以及一個 datetime 和一個timedelta 的相加或相減給出一個datetime。
x5=datetime.timedelta(minutes=3.0)
print(x5)
# 結果顯示0:03:00
x5x=x_today - x_utcnow #兩個 datetime 對象的相減返回一個 timedelta
print(x_today)
# 結果顯示2021-11-13 10:44:10.671427
print(x_utcnow)
# 結果顯示2021-11-13 02:44:10.671427
print(x5x)
# 結果顯示8:00:00
x5x_x=x_today + x5x + x5x + x5x
print(x5x_x)
# 結果顯示2021-11-14 12:48:36.736688
print(datetime.MAXYEAR) # 獲取最大年份
# 結果顯示9999
print(datetime.MINYEAR) # 獲取最小年份
# 結果顯示0001
#------------------tzinfo類(時區)信息操作---------------------#
datetime class tzinfo時區信息類的抽象基類。這是一個抽象基類,也就是說該類不應被直接實例化。 請定義 tzinfo 的子類來捕獲有關特定時區的信息。
子類必須覆蓋 name()、utcoffset() 和 dst() 方法。
# -----------timezone類---------------#
# datetime 模塊提供了 timezone,這是 tzinfo 的一個簡單實體子類
print(datetime.timezone.max)
# 結果顯示UTC+23:59
print(datetime.timezone.min)
# 結果顯示UTC-23:59
print(datetime.timezone.utc)
# 結果顯示UTC
3、日期格式代碼如下:
%a Weekday,短版本
%A Weekday,完整版本
%w Weekday,數字 0-6,0 為周日
%d 日,數字 01-31
%b 月名稱,短版本
%B 月名稱,完整版本
%m 月,數字01-12
%y 年,短版本,無世紀
%Y 年,完整版本
%H 小時,00-23
%I 小時,00-12
%p AM/PM
%M 分,00-59
%S 秒,00-59
%f 微妙,000000-999999
%z UTC 偏移
%Z 時區
%j 天數,001-366
%U 周數,每周的第一天是周日,00-53
%W 周數,每周的第一天是周一,00-53
%c 日期和時間的本地版本
%x 日期的本地版本
%X 時間的本地版本
%% A % character
希望以上的總結對你有幫助!!!