احمد سراجی
احمد سراجی
خواندن ۲ دقیقه·۳ سال پیش

نگاهی به کار با زمان و تاریخ در پایتون

برای کار با تاریخ و زمان در پایتون می توان از کتابخانه استاندارد 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
  • datetime
  • time
  • timedelta

بررسی کلاس date

شما به وسیله این کلاس می توانید آبجکت هایی از تاریخ های مشخص بسازید. سازنده کلاس 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(&quotcurrent year: &quot, today.year)
print(&quotcurrent month: &quot, today.month)
print(&quotcurrent day: &quot, today.day)


بررسی کلاس time

کلاس time نیز مشابه کلاس date اما برای ساخت آبجکت های زمانی است. متد سازنده در این کلاس چهار مقدار ساعت، دقیقه، ثانیه و میکروثانیه را قبول می کند که در یک مثال کلی به صورت زیر است

from datetime import time
time_object = time(15, 41, 40, 234566)
print(time_object)

خروجی

15:41:40.234566


کلاس datetime نیز کاربرد های هر دو کلاس time و date را به صورت یکجا دارد یعنی با این کلاس هم می توان آبجکت های تاریخ و هم زمان و هم هر دو به صورت یک آبجکت واحد ساخت

بررسی کلاس timedelta

این کلاس برای اندازه گیری فاصله زمانی و افزودن سال، ماه و روز به آبجکت های به و جوده آمده از طریق 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(&quott3 =&quot, t3) print(&quottype of t3 =&quot, 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

امیدوارم این مقاله برای شما مفید واقع شود

منابع

پایتونجنگوتاریخزمانبرنامه نویسی
علاقه مند به حوزه برنامه نویسی به ویژه برنامه نویسی وب
شاید از این پست‌ها خوشتان بیاید