Datetime Module

datetime模塊是Python中常用來處理日期、時間的方法,可以用來計算時間差,也可以由此取的所需要的時間資訊。 這邊主要看datetime模塊中的兩個類: datetime :處理日期及時間的混和物件 timedelta:處理時間差

datetime 類用於處理 datetime 對象, 其中包含了日期和時間的所有信息 ( 年、月、日、小時、分鐘、秒和微秒 )。 要獲取當前時間,我們可以使用靜態方法,將可以得到當前時間的 datetime 對象( datetime object ) datetime.now( )

import datetime

print(datetime.datetime.now())
print(type(datetime.datetime.now()))
--------------------------------------------
# 執行結果:
2022-09-28 15:38:38.757002
<class 'datetime.datetime'>

這時候必須利用 datetime中的方法將 datetime 對象( datetime object )的相關訊息取出來:

| --- | --- |

| strftime( ) | 回傳特定格式字串所表示的時間 |

import datetime

today = datetime.datetime.now()

print(today)
print(today.year)
print(today.month)
print(today.day)
print(today.hour)
print(today.minute)
print(today.second)
print(today.microsecond)
--------------------------------------------
# 執行結果:
2022-09-28 15:41:11.974921
2022
9
28
15
41
11
974921

創建 datetime對象,利用datetime中的函數進行創造,函數結構如下: datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0) 其中 year / month / day 這三個參數必須要填入才能生成

import datetime

today = datetime.datetime.now()

one_day = datetime.datetime(2022, 9, 1)

print(today)
print(one_day)
print(today - one_day)
--------------------------------------------
# 執行結果:
2022-09-28 15:52:30.502414
2022-09-01 00:00:00
27 days, 15:52:30.502414

strftime 及 strptime 這兩個函數的作用都是將 時間字串(是str類型) 及 時間對象(datetime object) 依一定格式轉換 strftime:f代表format(格式化),將時間對象 依指定格式轉換成 時間字串 strptime:p代表parse(解析),將時間字串 依指定格式轉換成 時間對象

strftime 及 strptime的相關code: https://docs.python.org/zh-tw/3/library/datetime.html#strftime-and-strptime-format-codes

import datetime

today = datetime.datetime.now()

today_f = today.strftime("%Y-%m-%d")
print(today_f)
print(type(today_f))

one_day = "2022-09-01"
one_day_p = datetime.datetime.strptime(one_day, "%Y-%m-%d")
print(one_day_p)
print(type(one_day_p))
--------------------------------------------
# 執行結果:
2022-09-28
<class 'str'>

2022-09-01 00:00:00
<class 'datetime.datetime'>

timedelta 對象(timedelta object)表示兩個日期或時間之間的差距,可以直接讀取相差的天數或總秒數差(total_seconds( ))

import datetime

import datetime

now = datetime.datetime.now()
one_day = datetime.datetime(2022, 9, 1)

diff = now - one_day

print(diff)
print(type(diff))

print(diff.days)
print(diff.total_seconds())
--------------------------------------------
# 執行結果:
27 days, 17:01:14.803057
<class 'datetime.timedelta'>
27
2394074.803057

創建 timedelta對象,利用timedelta中的函數進行創造,函數結構如下: datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) 其中 days / seconds / microseconds / milliseconds / minutes / hours=0 / weeks 這些參數默認為0,可以填入正數或負數

129.jpg

import datetime

now = datetime.datetime.now()
gap = datetime.timedelta(1)

tomorrow = now + gap
print(tomorrow)

one_day = datetime.datetime(2022, 9, 1)
print(now == one_day)
print(now > one_day)
print(now < one_day)
--------------------------------------------
# 執行結果:
2022-09-29 17:15:48.206893
False
True
False

Math Module

Python的math模塊提供了許多常用的數學函式,例如三角函數、四捨五入、指數、對數、平方根、總和...等

math中的常量