کار با تاریخ و زمان در پایتون: ماژول datetime

کار با تاریخ و زمان در پایتون: ماژول datetime

ماژول datetime در پایتون ابزاری قدرتمند برای کار با تاریخ و زمان است. این ماژول به شما امکان می‌دهد تا تاریخ‌ها و زمان‌ها را ایجاد، دستکاری، قالب‌بندی و مقایسه کنید. در این مقاله، به بررسی عمیق این ماژول و کاربردهای آن در پایتون خواهیم پرداخت. این آموزش در دسته بندی ‘مبانی پایتون’ قرار می‌گیرد و برای مبتدیان مناسب است.

مقدمه‌ای بر ماژول datetime

ماژول datetime شامل چندین کلاس اصلی است که هر کدام وظیفه خاصی را بر عهده دارند:

  • date: برای کار با تاریخ (سال، ماه، روز)
  • time: برای کار با زمان (ساعت، دقیقه، ثانیه، میکروثانیه)
  • datetime: برای کار با تاریخ و زمان به صورت ترکیبی
  • timedelta: برای محاسبه اختلاف بین دو تاریخ یا زمان
  • timezone: برای کار با مناطق زمانی

برای استفاده از این ماژول، ابتدا باید آن را وارد (import) کنید:

import datetime

کلاس date: کار با تاریخ

کلاس date برای نمایش تاریخ استفاده می‌شود. برای ایجاد یک شیء date، می‌توانید از سازنده (constructor) آن استفاده کنید:

today = datetime.date.today()
print(today) # خروجی: سال-ماه-روز (مثال: 2023-10-27)

همچنین می‌توانید تاریخ را به صورت دستی با استفاده از سال، ماه و روز ایجاد کنید:

my_date = datetime.date(2023, 12, 25)
print(my_date) # خروجی: 2023-12-25

به شیء date می‌توانید با استفاده از ویژگی‌های زیر دسترسی داشته باشید:

  • year: سال
  • month: ماه
  • day: روز
print(today.year)
print(today.month)
print(today.day)

کلاس time: کار با زمان

کلاس time برای نمایش زمان استفاده می‌شود. برای ایجاد یک شیء time، می‌توانید از سازنده آن استفاده کنید:

now = datetime.time(14, 30, 45) # ساعت، دقیقه، ثانیه
print(now) # خروجی: 14:30:45

به شیء time می‌توانید با استفاده از ویژگی‌های زیر دسترسی داشته باشید:

  • hour: ساعت
  • minute: دقیقه
  • second: ثانیه
  • microsecond: میکروثانیه
print(now.hour)
print(now.minute)
print(now.second)

کلاس datetime: کار با تاریخ و زمان

کلاس datetime ترکیبی از کلاس‌های date و time است و برای نمایش تاریخ و زمان به صورت یکجا استفاده می‌شود.

now = datetime.datetime.now()
print(now) # خروجی: سال-ماه-روز ساعت:دقیقه:ثانیه.میکروثانیه

همانند کلاس‌های date و time، می‌توانید تاریخ و زمان را به صورت دستی ایجاد کنید:

my_datetime = datetime.datetime(2023, 12, 25, 10, 0, 0)
print(my_datetime) # خروجی: 2023-12-25 10:00:00

به شیء datetime می‌توانید با استفاده از ویژگی‌های زیر دسترسی داشته باشید:

  • year: سال
  • month: ماه
  • day: روز
  • hour: ساعت
  • minute: دقیقه
  • second: ثانیه
  • microsecond: میکروثانیه

کلاس timedelta: محاسبه اختلاف زمان

کلاس timedelta برای محاسبه اختلاف بین دو تاریخ یا زمان استفاده می‌شود.

date1 = datetime.date(2023, 10, 27)
date2 = datetime.date(2023, 11, 10)

difference = date2 - date1
print(difference) # خروجی: 14 days, 0:00:00
print(difference.days) # خروجی: 14

می‌توانید از timedelta برای اضافه یا کم کردن زمان از یک تاریخ یا زمان استفاده کنید:

today = datetime.date.today()
future_date = today + datetime.timedelta(days=7)
print(future_date) # خروجی: تاریخ یک هفته بعد

قالب‌بندی تاریخ و زمان (strftime و strptime)

برای نمایش تاریخ و زمان در قالب‌های مختلف، می‌توانید از متد strftime() استفاده کنید. این متد یک رشته قالب‌بندی را به عنوان ورودی می‌گیرد و تاریخ و زمان را بر اساس آن قالب‌بندی می‌کند.

now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # خروجی: 2023-10-27 15:45:30 (مثال)

برخی از کدهای قالب‌بندی رایج عبارتند از:

  • %Y: سال (چهار رقمی)
  • %m: ماه (دو رقمی)
  • %d: روز (دو رقمی)
  • %H: ساعت (۲۴ ساعته)
  • %M: دقیقه
  • %S: ثانیه
  • %a: نام روز هفته (مختصر)
  • %A: نام روز هفته (کامل)
  • %b: نام ماه (مختصر)
  • %B: نام ماه (کامل)

برای تبدیل یک رشته به یک شیء datetime، می‌توانید از متد strptime() استفاده کنید.

date_string = "2023-12-25 10:00:00"
datetime_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(datetime_object) # خروجی: 2023-12-25 10:00:00

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

ماژول datetime امکان کار با مناطق زمانی را نیز فراهم می‌کند. برای این کار، باید از کلاس timezone استفاده کنید.

import datetime
import pytz # نیاز به نصب: pip install pytz

# تعریف یک منطقه زمانی
tehran_timezone = pytz.timezone('Asia/Tehran')

# ایجاد یک تاریخ و زمان آگاه به منطقه زمانی
now_tehran = datetime.datetime.now(tehran_timezone)
print(now_tehran)

# تبدیل یک تاریخ و زمان به منطقه زمانی دیگر
utc_timezone = pytz.utc
now_utc = now_tehran.astimezone(utc_timezone)
print(now_utc)

توجه داشته باشید که برای کار با مناطق زمانی، نیاز به نصب کتابخانه pytz دارید.

نتیجه‌گیری

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

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *