تاریخها در پایتون
نوع دادهی تاریخ و زمان در پایتون به طور مستقل تعریف نشده است. این نوع با استفاده از کلاس datetime در ماژول datetime تعریف شده است. این ماژول کلی متد و کلاس دارد که کار با تاریخ و زمان را در پایتون تسهیل میکند.
مثال:
>>> import datetime
>>> x = datetime.datetime.now()
>>> print(x)
۲۰۲۲-۰۲-۱۰ ۱۷:۰۸:۲۶٫۴۰۲۵۷۷
در مثال بالا ابتدا ماژول datetime را ایمپورت کردیم، سپس با استفاده از متد now شی datetime که در ماژول datetime تعریف شده است زمان جاری سیستم راه برگرداندیم. نهایتا مقدار x را با استفاده از تابع print چاپ کردیم. تاریخ چاپ شده شامل سال، ماه،روز، ساعت، دقیقه، ثانیه و میکرو ثانیه است.
متد datetime در پایتون متدهای زیادی برای کار با تاریخ دارد که در این مقاله برخی از آنها را معرفی و مثالهای مورد نظر را بررسی میکنیم.
مثال: در تکه کد زیر سال و نام روز جاری را چاپ می کنیم.
>>> import datetime
>>> x = datetime.datetime.now()
>>> print(x)
۲۰۲۲-۰۲-۱۰ ۱۷:۰۸:۲۶٫۴۰۲۵۷۷
>>> print(x.year)
۲۰۲۲
>>> print(x.strftime('%A'))
Thursday
ایجاد یک شی از نوع تاریخ در پایتون
برای ایجاد یک شی از نوع date در پایتون از کلاس datetime() در ماژول datteime استفاده میکنیم.
این کلاس برای ایجاد یک شی از نوع date سه تا پارامتر میگیرد که عبارتند از year,month,day.
مثال:
>>> import datetime
>>> x = datetime.datetime(2020,5,17)
>>> print(x)
۲۰۲۰-۰۵-۱۷ ۰۰:۰۰:۰۰
>>>
برای ایجاد یک شی از نوع تاریخ با استفاده از کلاس datetime میتوانید ساعت، دقیقه، ثانیه، میکروثانیه و منطقهی زمانی را نیز به عنوان پارامتر به این کلاس ارسال نمایید.
بیشتر بخوانید: اعداد مختلط در پایتون
متد strftime در پایتون
با استفاده از تابع strftime در پایتون میتوانید یک شی از نوع تاریخ را به یک رشتهی قابل خواندن تبدیل نمایید. این متد در کلاس datetime تعریف شده است.این تابع یک پارامتر از نوع رشته میگیرد و تاریخ مورد نظر را با توجه به پارامتر ورودی فرمت کرده و بر میگرداند.در مثال زیر با استفاده از این تابع نام ماه را چپ کردهایم.
>>> import datetime
>>> x = datetime.datetime(2022,6,1)
>>> print(x.strftime("%B"))
June
در جدول زیر میتوانید تمامی فرمتهایی که تابع strftime قبول میکند را مشاهده می کنید:
قبل از اجرا مثال مورد نظر این دو خط کد را باید اجرا نمایید. خط اول ماژول datetiem را ایمورت میکند و خط دوم تاریخ امروز را به متغیر x میدهد.
>>> import datetime
>>> x = datetime.datetime.now()
اگر دو خط کد مذکور را یک بار در ترمینال اجرا کنید بعد از آن می توانید تمام مثالهای زیر را اجرا نمایید.
فرمت | توضیح | مثال | خروجی |
---|---|---|---|
%a | نام کوتاه روز | print(x.strftime("%a")) | Thu |
%A | نام کامل روز | print(x.strftime("%A")) | Thursday |
%w | شماره روز که ۰ نشان دهندهی یکشنبه است | print(x.strftime("%w")) | ۴ |
%d | روزی از ماه (از ۰۱تا ۰۳۱) | print(x.strftime("%d")) | ۱۰ |
%B | نام کامل ماه جاری | print(x.strftime("%B")) | February |
%b | اسم اختصاری ماه | print(x.strftime("%b")) | Feb |
%m | شماره ماه از ۰۱ تا ۱۲ | print(x.strftime("%m")) | ۰۲ |
%y | شماره سال بدون قرن | print(x.strftime("%y")) | ۲۲ |
%Y | شماره کامل سال | print(x.strftime("%Y")) | ۲۰۲۲ |
%H | ساعت (۰۰-۱۲) | print(x.strftime("%H")) | ۱۷ |
%I | ساعت(۰۰-۱۲) | print(x.strftime("%I")) | ۰۵ |
%p | قبل از ظهر/بعد از ظهر | print(x.strftime("%p")) | PM |
%M | دقیقه(۰۰-۵۹) | print(x.strftime("%M")) | ۴۰ |
%S | ثانیه(۰۰-۵۹) | print(x.strftime("%S")) | ۱۰ |
%f | میکروثانیه ۰۰۰۰۰۰-۹۹۹۹۹۹ | print(x.strftime("%f")) | ۰۱۳۹۴۹ |
%z | فاصله زمانی با UTC | print(x.strftime("%z")) | |
%Z | منطقهی زمانی | print(x.strftime("%Z")) | |
%j | شماره روز جاری سال ۰۰۱-۳۶۶ | print(x.strftime("%j")) | ۰۴۱ |
%U | شماره هفتهی جاری از سال ۰۰-۵۳ شروع هفته یک شنبه | print(x.strftime("%U")) | ۰۶ |
%W | شماره هفتهی جاری از سال ۰۰-۵۳ شروع هفته دوشنبه | print(x.strftime("%W")) | ۰۶ |
%c | ورژن محلی تاریخ | print(x.strftime("%c")) | Thu Feb 10 17:40:10 2022 |
%C | قرن | print(x.strftime("%C")) | ۲۰ |
%x | ورژن محلی تاریخ | print(x.strftime("%x")) | ۰۲/۱۰/۲۲ |
%X | ورژن محلی زمان | print(x.strftime("%X")) | ۱۷:۴۰:۱۰ |
%% | یک کاراکتر % | print(x.strftime("%%")) | % |
%G | سال با فرمت ISO 8601 | print(x.strftime("%G")) | ۲۰۲۲ |
%u | شماره روز هفته با فرمت ISO 8601 | print(x.strftime("%u")) | ۴ |
%V | شماره هفته (۰۱-۵۳)با فرمتISO 8601 | print(x.strftime("%V")) | ۰۶ |