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