معرفی ماژول Datetime

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/12
  • تعداد بازدید: 23

معرفی ماژول datetime، منطقه زمانی (timezone) و تفاوت زمانی (timedelta)

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

ساخت شیء تاریخ و زمان

from datetime import datetime

# تاریخ و زمان فعلی
now = datetime.now()
print("زمان فعلی:", now)

# ساخت تاریخ و زمان مشخص
dt = datetime(2025, 8, 3, 14, 30)
print("تاریخ مشخص:", dt)

اختلاف زمانی با timedelta

from datetime import timedelta

# اختلاف دو روز و 3 ساعت
delta = timedelta(days=2, hours=3)
print("Timedelta:", delta)

# جمع یا تفریق با datetime
new_time = now + delta
print("زمان بعد از ۲ روز و ۳ ساعت:", new_time)

کار با منطقه زمانی (timezone)

from datetime import datetime, timezone, timedelta

# تعریف یک منطقه زمانی با اختلاف +4:30 از UTC
iran_tz = timezone(timedelta(hours=4, minutes=30))

# زمان فعلی در آن منطقه
dt_with_tz = datetime.now(iran_tz)
print("زمان با منطقه زمانی ایران:", dt_with_tz)

ماژول datetime به‌صورت داخلی از timezone پشتیبانی می‌کند، اما برای کار با مناطق زمانی پیشرفته‌تر (مانند نام منطقه‌ای Asia/Tehran یا بررسی تغییرات ساعت تابستانی)، معمولاً از کتابخانه‌های مکمل مانند pytz یا zoneinfo (از نسخه ۳.۹ به بعد) استفاده می‌شود.

مثال با zoneinfo (پایتون ۳.۹ به بعد)

from datetime import datetime
from zoneinfo import ZoneInfo

dt_tehran = datetime.now(ZoneInfo("Asia/Tehran"))
dt_utc = datetime.now(ZoneInfo("UTC"))

print("تهران:", dt_tehran)
print("UTC:", dt_utc)

جمع‌بندی

  • datetime: نمایش و ساخت تاریخ و زمان
  • timedelta: نمایش اختلاف زمانی (جمع و تفریق)
  • timezone یا zoneinfo: افزودن آگاهی از منطقه زمانی

استفاده صحیح از این ابزارها باعث می‌شود که برنامه‌ شما در سیستم‌های مختلف و مناطق زمانی متفاوت به‌درستی کار کند و برای ثبت لاگ‌ها، زمان‌بندی رویدادها و تعامل با پایگاه‌های داده دقیق‌تر باشد.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.