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

بدون دیدگاه