Python Datetime

تاریخ

تاریخ در پایتون یک نوع داده نیست ولی می‌توانیم یک مدول به اسم datetime وارد کنیم و با تاریخ به عنوان یک شیء تاریخ کار کنیم.

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


import datetime

x = datetime.datetime.now()
print(x)

خروجی:

خروجی تاریخ

چنانکه مشاهده می‌کنید خروجی تاریخ شامل سال، ماه، روز، ساعت، دقیقه، ثانیه و میکروثانیه است.

مدول تاریخ توابع شیء بسیاری جهت نمایش اطلاعات درباره شیء تاریخ دارد. در ادامه تعدادی از این توابع شیء را در مثال‌های استفاده کرده تا بیشتر در مورد آن‌ها یاد بگیریم.

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


import datetime

x = datetime.datetime.now()

print(x.year)
print(x.strftime("%A"))

خروجی:

ایجاد شیء تاریخ

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

کلاس datetime() نیازمند 3 پارامتر جهت ایجاد یک شیء تاریخ است: سال، ماه و روز


import datetime

x = datetime.datetime(2020, 5, 17)

print(x)

خروجی:

کلاس datetime() همچنین می‌تواند پارامترهایی برای زمان و منطقه زمانی به خود بگیرد (hour, minute, second, microsecond, tzone) ولی این پارامترها اختیاری هستند و مقدار پیش‌فرض آن 0 (برای منطقه زمانی None) است.

تابع شیء ()strftime

شیء datetime تابع شیء‌ای جهت قالب‌بندی شیء زمان به رشته قابل خواندن دارد. این تابع شیء را strftime() می‌گویند و تنها به یک پارامتر format جهت قالب‌بندی رشته برگردانده شده نیاز دارد.

در کد زیر با استفاده از این تابع شیء اسم ماه را نمایش می‌دهیم.


import datetime

x = datetime.datetime(2018, 6, 1)

print(x.strftime("%B"))

خروجی:

در جدول زیر تمامی فرمت‌های مجاز برای تابع شیء strftime() آورده شده است.

فرمت توضیح
%a نسخه کوتاه شده اسم هفته. مانند Wed
%A نسخه کامل اسم هفته. مانند Wednesday
%w اسم هفته به عنوان عددی بین 0 تا 6. مانند 0 برای یکشنبه.
%d روز ماه از 01 تا 31
%b اسم ماه به صورت کوتاه شده. مانند Dec
%B اسم ماه به صورت کامل. مانند December
%m ماه به صورت عددی بین 01 تا 12
%y سال به صورت کوتاه شده، بدون دو رقم قرن. مانند 18
%Y سال به صورت کامل. مانند 2018
%H ساعت از 00 تا 23
%I ساعت به صورت 00 تا 12
%p AM/PM
%M دقیقه از 00 تا 59
%S ثانیه از 00 تا 59
%f میکروثانیه از 000000 تا 999999
%z اختلاف زمانی با ساعت جهانی (UTC). مانند 0100+
%Z موقعیت زمانی. مانند CST
%j روز سال. مانند 364
%W هفته سال، یکشنبه به عنوان اولین روز هفته. عددی بین 00 تا 53.
هفته سال، دوشنبه به عنوان اولین روز هفته. عددی بین 00 تا 53.
%c نسخه محلی تاریخ و زمان. مانند Mon Dec 31 17:41:00 2018
%C قرن. مانند 20
%x نسخه محلی تاریخ. مانند 12/31/18
%X نسخه محلی زمان. مانند 17:41:00
%% کاراکتر %
%G سال با استاندار ISO 8601. مانند 2018
%u روز هفته با استاندارد ISO 8601. مانند 1
%V هفته سال با استاندارد ISO 8601. مانند 01