ماژول datetime

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

زمان

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

خاصیت کاربرد
hour برای نمایش ساعت به کار می‌رود.
minute برای نمایش دقیقه به کار می‌رود.
second برای نمایش ثانیه به کار می‌رود.
milisecond برای نمایش میلی ثانیه به کار می‌رود.
min ابتدای روز را به صورت 00:00:00 نمایش می‌دهد.
max انتهای روز را به صورت 23:59:59.999999 نمایش می‌دهد.
  1: import datetime
  2: 
  3: time = datetime.time(1, 2, 3, 2352)
  4: 
  5: print(time)
  6: print('hour  :'      , time.hour)
  7: print('minute:'      , time.minute)
  8: print('second:'      , time.second)
  9: print('microsecond:' , time.microsecond)
 10: print('min  :'       , time.min)
 11: print('max:'         , time.max)
01:02:03.002352
hour  : 1
minute: 2
second: 3
microsecond: 2352
min  : 00:00:00
max: 23:59:59.999999

همانطور که در خط 3 کد بالا مشاهده می‌کنید، سازنده کلاس time اعدادی را می‌گیرد و آنها را بر حسب ساعت، دقیقه، ثانیه و میلی ثانیه نمایش می‌دهد.

تاریخ

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

خاصیت کاربرد
year برای نمایش سال به کار می‌رود.
month برای نمایش ماه به کار می‌رود.
day برای نمایش روز به کار می‌رود.


متد کاربرد
()today برای نمایش تاریخ روز فعلی به کار می‌رود.
()ctime برای نمایش تاریخ به صورت کامل به کار می‌رود.
()timetuple تاریخ فعلی را به صورت tuple نمایش می‌دهد.

به کد زیر توجه کنید:

  1: import datetime
  2: 
  3: today = datetime.date.today()
  4: 
  5: print(today                         )
  6: print('ctime:'  , today.ctime()     )
  7: print('tuple:'  , today.timetuple() )
  8: print('ordinal:', today.toordinal() )
  9: print('Year:'   , today.year        )
 10: print('Mon :'   , today.month       )
 11: print('Day :'   , today.day         )
2018-06-22
ctime: Fri Jun 22 00:00:00 2018
tuple: time.struct_time(tm_year=2018, tm_mon=6, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=173, tm_isdst=-1)
Year: 2018
Mon : 6
Day : 22

قالب بندی تاریخ و زمان

کلاس datetime دارای متد ()strftime برای قالب بندی تاریخ و زمان، جهت نمایش خواناتر آن‌ها می‌باشد. در حالت پیشفرض خروجی متد ()today به صورت YYYY-MM-DDTHH:MM:SS.mmmmmm می‌باشد. حال ممکن است که ما بخواهیم مثلاً تاریخ را به صورت 2018/06/22 نمایش دهیم. در این صورت متد ()strftime به کار برده می‌شوند. این متد برای قالب بندی تاریخ از کاراکترهایی استفاده می‌کند که در زیر به آنها اشاره شده است:

کاراکتر توضیح مثال
a% برای نمایش نام روز هفته به صورت کوتاه، به کار می‌رود. Wed
A% برای نمایش نام روز هفته به صورت کامل، به کار می‌رود. Wednesday
w% برای نمایش عدد معادل روز هفته به کار می‌رود. مثلاً 0 یعنی روز یکشنبه. 3
d% برای نمایش روز از ماه به صورت عددی دو رقمی به کار می‌رود (31-01) 31
b% برای نمایش نام ماه به صورت کوتاه، به کار می‌رود. Dec
B% برای نمایش نام ماه به صورت کوتاه، به کار می‌رود. December
m% ماه را به صورت یک عدد دو رقمی (12-01) نمایش می‌دهد. 12
y% سال را به صورت عدد دو رقمی نمایش می‌دهد. مثلاً سال 2018 را به صورت 18 نمایش می‌دهد. 18
Y% سال را به صورت کامل نمایش می‌دهد. 2018
H% ساعت را به صورت عدد دو رقمی (23-00) نمایش می‌دهد. 17
I% ساعت را به صورت عدد دو رقمی (12-00) نمایش می‌دهد. 05
p% برای نمایش بعد از ظهر/قبل از ظهر به کار می‌رود. PM
M% دقیقه را به صورت عدد دو رقمی (59-00) نمایش می‌دهد. 41
S% ثانیه را به صورت عدد دو رقمی (59-00) نمایش می‌دهد. 08
%f% برای نمایش میلی ثانیه (000000-999999) به کار می‌رود. 548513
z% برای نمایش اختلاف زمانی به کار می‌رود. +0100
Z% ساعت محلی را نشان می‌دهد. CST
j% عدد روز در سال را نشان می‌دهد (365-01). 365
U% عدد هفته در سال را نشان می‌دهد (53-00) اگر اول روز هفته یکشنبه باشد. 52
W% عدد هفته در سال را نشان می‌دهد (53-00) اگر اول روز هفته دوشنبه باشد. 52
c% نسخه محلی تاریخ و زمان را نشان می‌دهد. Mon Dec 31 17:41:00 2018
x نسخه محلی تاریخ را نشان می‌دهد. 12/31/18
X% نسخه محلی ساعت را نشان می‌دهد. 17:41:00
%% کاراکتر % را نشان می‌دهد. %

به مثال زیر توجه کنید:

import datetime

print(datetime.datetime.today().strftime("%Y/%m/%d"))
2018/06/22

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