برای کار با تاریخ و زمان در پایتون می توان از کتابخانه استاندارد datetime استفاده کرد که یه صورت پیش فرض موجود است و نیاز به نصب مجزا ندارد.
گرفتن تاریخ و زمان حال
import datetime
now = datetime.datetime.now()
print(now)
با اجرای کد بالا خروجی به صورت زیر خواهد بود.
2021-08-15 19:41:31.568993
گرفتن زمان حال
import datetime
today = datetime.date.today()
print(today)
خروجی ما برای کد بالا به صورت زیر خواهد بود.
2021-08-15
دقت شود که datetime و date کلاس های درون ماژول datetime هستند و now همراه با today توابعی هستند که به ترتیب در datetime و date تعریف شده اند.
با پاس دادن ماژول datetime درون تابع ()dir که یک تابع در پایتون برای نمایش متدهای یک ماژول است می توانیم مشاهده کنیم که چه کلاس هایی در ماژول datetime قرار دارد.
print(dir(datetime))
خروجی
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
کلاس های اصلی ماژول
شما به وسیله این کلاس می توانید آبجکت هایی از تاریخ های مشخص بسازید. سازنده کلاس date سه پارامتر سال، ماه و روز را قبول می کند
from datetime import date
date_object = date(2021, 8, 16)
print(date_object)
خروجی
2021-08-16
متد today نیز که در قبل تر با آن آشنا شدیم نیز در این کلاس قرار دارد و علاوه بر کاربرد قبلی می توان به صورت مجزا سال، ماه و روز را به وسیله آن گرفت
from datetime import date
today = date.today()
print("current year: ", today.year)
print("current month: ", today.month)
print("current day: ", today.day)
کلاس time نیز مشابه کلاس date اما برای ساخت آبجکت های زمانی است. متد سازنده در این کلاس چهار مقدار ساعت، دقیقه، ثانیه و میکروثانیه را قبول می کند که در یک مثال کلی به صورت زیر است
from datetime import time
time_object = time(15, 41, 40, 234566)
print(time_object)
خروجی
15:41:40.234566
کلاس datetime نیز کاربرد های هر دو کلاس time و date را به صورت یکجا دارد یعنی با این کلاس هم می توان آبجکت های تاریخ و هم زمان و هم هر دو به صورت یک آبجکت واحد ساخت
این کلاس برای اندازه گیری فاصله زمانی و افزودن سال، ماه و روز به آبجکت های به و جوده آمده از طریق datetime و date استفاده می شود.
import datetime
now = datetime.datetime.now()
print(now)
from datetime import timedelta
add_days = now + timedelta(days=3) print(add_days)
خروجی
2021-08-16 18:49:16.681039
2021-08-19 18:49:16.681039
اگر اختلاف بین دو آبجکت تاریخ یا زمان را بخواهیم محاسبه کنیم خروجی از نوع کلاس timedelta خواهد بود و متد های این کلاس برای خروجی قابل استفاده است
from datetime import datetime, date t1 = date(year = 2021, month = 8, day = 16) t2 = date(year = 2021, month = 12, day = 23) t3 = t1 - t2 print("t3 =", t3) print("type of t3 =", type(t3))
خروجی
t3 = -129 days, 0:00:00
type of t3 = <class 'datetime.timedelta'>
از جمله متدهای کلاس timedelta می توان به total_seconds اشاره کرد که اختلاف بین دو آبجکت را به صورت ثانیه برمی گرداند
from datetime import datetime, date
t1 = date(year = 2021, month = 8, day = 16)
t2 = date(year = 2021, month = 12, day = 23)
t3 = t1 - t2 print(t3.total_seconds( ))
خروجی
-11145600.0
امیدوارم این مقاله برای شما مفید واقع شود
منابع