در پایتون، ماژول datetime
برای کار با تاریخ و زمان استفاده میشود.
این ماژول امکانات گستردهای برای ساخت، تغییر، مقایسه و قالببندی تاریخ و زمان فراهم میکند.
🔹 وارد کردن ماژول
import datetime
یا میتوان کلاسهای خاص را مستقیم وارد کرد:
from datetime import date, time, datetime, timedelta
🔹 کلاسهای اصلی
-
date – فقط تاریخ (سال، ماه، روز)
-
time – فقط زمان (ساعت، دقیقه، ثانیه، میکروثانیه)
-
datetime – ترکیب تاریخ و زمان
-
timedelta – اختلاف زمانی بین دو تاریخ/زمان
-
timezone – مدیریت منطقه زمانی
🔹 تاریخ امروز
from datetime import date
today = date.today()
print(today) # 2025-09-18 (مثال)
print(today.year) # 2025
print(today.month) # 9
print(today.day) # 18
🔹 ساخت تاریخ مشخص
my_date = date(2025, 12, 25)
print(my_date) # 2025-12-25
🔹 زمان (Time)
from datetime import time
t = time(14, 30, 15) # ساعت: 14:30:15
print(t)
print(t.hour) # 14
print(t.minute) # 30
🔹 تاریخ و زمان (Datetime)
from datetime import datetime
now = datetime.now()
print(now) # 2025-09-18 13:45:12.345678
print(now.year, now.month, now.day)
print(now.hour, now.minute)
ساخت datetime مشخص
dt = datetime(2025, 12, 25, 10, 30, 0)
print(dt)
🔹 فرمتبندی تاریخ و زمان (strftime)
now = datetime.now()
print(now.strftime("%Y-%m-%d")) # 2025-09-18
print(now.strftime("%d/%m/%Y")) # 18/09/2025
print(now.strftime("%H:%M:%S")) # 13:45:12
print(now.strftime("%A, %B %d, %Y")) # Thursday, September 18, 2025
-
%Y
: سال چهاررقمی -
%m
: ماه -
%d
: روز -
%H
: ساعت (24ساعته) -
%M
: دقیقه -
%S
: ثانیه -
%A
: نام روز هفته -
%B
: نام ماه کامل
🔹 تبدیل رشته به تاریخ (strptime)
date_str = "25-12-2025"
dt = datetime.strptime(date_str, "%d-%m-%Y")
print(dt) # 2025-12-25 00:00:00
🔹 اختلاف زمانی (Timedelta)
from datetime import timedelta
today = date.today()
tomorrow = today + timedelta(days=1)
yesterday = today - timedelta(days=1)
print(tomorrow)
print(yesterday)
-
میتوان از ساعت، دقیقه، ثانیه نیز استفاده کرد:
delta = timedelta(hours=5, minutes=30)
🔹 مقایسه تاریخ و زمان
date1 = datetime(2025, 9, 18)
date2 = datetime(2025, 12, 25)
print(date2 > date1) # True
print(date2 - date1) # 98 days, 0:00:00
🔹 تمرینهای پیشنهادی
-
برنامهای بنویس که تاریخ تولد کاربر را گرفته و سن او را محاسبه کند.
-
اختلاف روز بین امروز و کریسمس سال جاری را محاسبه کن.
-
رشتهای با فرمت
"YYYY/MM/DD HH:MM"
گرفته و آن را به یک datetime تبدیل کن.
✅ خلاصه
-
ماژول
datetime
برای کار با تاریخ و زمان کاربرد دارد. -
کلاسهای مهم:
date
,time
,datetime
,timedelta
-
strftime
وstrptime
برای فرمتبندی و تبدیل رشتهها استفاده میشوند. -
timedelta
برای انجام عملیات ریاضی روی تاریخ و زمان کاربرد دارد.