Python Datetime

در پایتون، ماژول datetime برای کار با تاریخ و زمان استفاده می‌شود.
این ماژول امکانات گسترده‌ای برای ساخت، تغییر، مقایسه و قالب‌بندی تاریخ و زمان فراهم می‌کند.

🔹 وارد کردن ماژول

import datetime

یا می‌توان کلاس‌های خاص را مستقیم وارد کرد:

from datetime import date, time, datetime, timedelta

🔹 کلاس‌های اصلی

  1. date – فقط تاریخ (سال، ماه، روز)

  2. time – فقط زمان (ساعت، دقیقه، ثانیه، میکروثانیه)

  3. datetime – ترکیب تاریخ و زمان

  4. timedelta – اختلاف زمانی بین دو تاریخ/زمان

  5. 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

🔹 تمرین‌های پیشنهادی

  1. برنامه‌ای بنویس که تاریخ تولد کاربر را گرفته و سن او را محاسبه کند.

  2. اختلاف روز بین امروز و کریسمس سال جاری را محاسبه کن.

  3. رشته‌ای با فرمت "YYYY/MM/DD HH:MM" گرفته و آن را به یک datetime تبدیل کن.

✅ خلاصه

  • ماژول datetime برای کار با تاریخ و زمان کاربرد دارد.

  • کلاس‌های مهم: date, time, datetime, timedelta

  • strftime و strptime برای فرمت‌بندی و تبدیل رشته‌ها استفاده می‌شوند.

  • timedelta برای انجام عملیات ریاضی روی تاریخ و زمان کاربرد دارد.