معرفی ماژول 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
: افزودن آگاهی از منطقه زمانی
استفاده صحیح از این ابزارها باعث میشود که برنامه شما در سیستمهای مختلف و مناطق زمانی متفاوت بهدرستی کار کند و برای ثبت لاگها، زمانبندی رویدادها و تعامل با پایگاههای داده دقیقتر باشد.