ماژول datetime در پایتون | به زبان ساده


در این مطلب ماژول datetime در پایتون مورد بررسی قرار گرفته است و چگونگی دستکاری دادههای تاریخ و زمان در زبان برنامهنویسی پایتون با کمک بیان مثالهای متعدد، تشریح شده است.
ماژول datetime در پایتون
پایتون دارای یک ماژول با عنوان datetime برای کار با دادهها و زمان است که از آن برای دستکاری دادههای تاریخ و زمان استفاده میشود.
در ادامه، چند برنامه ساده مرتبط با تاریخ و زمان، پیش از از عمیقتر شدن در بحث و پرداختن به ماژول datetime در پایتون ارائه شده است.
مثال ۱: دریافت تاریخ و زمان کنونی
پس از اجرای برنامه بالا، خروجی به صورت زیر است.
2018-12-19 09:26:03.478039
در اینجا، ماژول datetime با استفاده از دستور import datetime بهبود داده شده است. یکی از کلاسهای تعریف شده در ماژول datetime، کلاس datetime است. سپس، متد ()now برای ساخت یک شی datetime که حاوی تاریخ و زمان کنونی است مورد استفاده قرار گرفته است.
مثال ۲: دریافت تاریخ کنونی
هنگامی که برنامه اجرا شد، خروجی به صورت زیر خواهد بود.
2018-12-19
در این برنامه، متد ()today در کلاس date تعریف شده است تا یک شی date حاوی تاریخ محلی کنونی را دریافت کند.
درون ماژول datetime در پایتون چیست؟
میتوان از تابع ()dir برای دریافت لیست حاوی همه خصیصههای یک مدل استفاده کرد.
هنگام اجرای برنامه، خروجی به صورت زیر خواهد بود.
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
کلاسهای متداول و محبوبی که در ماژول datetime مورد استفاه قرار میگیرند، در زیر بیان شدهاند.
- کلاس date
- کلاس time
- کلاس datetime
- کلاس timedelta
کلاس datetime.date
در اامه مطلب ماژول datetime در پایتون به کلاس datetime.date پرداخته شده است. میتوان از شی date از کلاس date نمونهسازی کرد. یک شی date، نشانگر یک تاریخ (سال، ماه و روز) است.
مثال ۳: شی date برای نمایش تاریخ
پس از اجرای برنامه، خروجی به صورت زیر خواهد بود.
در مثال بالا، ()date سازنده کلاس date است. سازنده سه آرگومان سال، ماه و روز را دریافت میکند. متغیر a یک شی date است. کلاس date را تنها میتوان از ماژول datetime «وارد» (ایمپورت | Import) کرد. در ادامه، قطعه کد مربوط به چگونگی انجام این کار ارائه شده است.
مثال ۴: دریافت تاریخ کنونی
میتوان شی date که حاوی تاریخ کنونی است را با استفاده از یک «متد کلاس» (Classmethod) با عنوان ()today ساخت. در ادامه، قطعه کد مربوط به این مورد ارائه شده است.
مثال ۵: دریافت date از timestamp
میتوان شی date را از timestamp نیز ساخت. یک ساعت «ساعت یونیکس» (Unix Timestamp) تعداد ثانیههای بین یک تاریخ مشخص و ۱ ژانویه ۱۹۷۰ است. میتوان timestamp را با استفاده از متد ()fromtimestamp به تاریخ تبدیل کرد.
پس از اجرای کد بالا، خروجی به صورت زیر خواهد بود.
مثال ۶: چاپ سال، ماه و روز
در این بخش از مطلب ماژول datetime در پایتون به چگونگی چاپ سال، ماه و روز در پایتون پرداخته شده است. میتوان سال، ماه و روز هفته و دیگر موارد را با استفاده از شی date به سادگی دریافت کرد. در ادامه، قطعه کد مربوط به این کار آورده شده است.
datetime.time
یک شی time از کلاس time که زمان محلی را نشان میدهد، نمونهسازی شده است.
مثال ۷: شی زمان برای نمایش زمان
با اجرای قطعه کد بالا، خروجی به صورت زیر خواهد بود.
مثال ۸: چاپ ساعت، دقیقه، ثانیه و میکروثانیه
هنگامی که شی زمان ساخته شد، میتوان به سادگی خصیصههای آن مانند minute، hour و دیگر موارد را ویرایش کرد.
با اجرای مثال بالا، خروجی به صورت زیر خواهد بود:
hour = 11 minute = 34 second = 56 microsecond = 0
توجه به این نکته لازم است که آرگومان microsecond در قطعه کد بالا پاس داده نشده است. بنابراین، مقادیر پیشفرض ۰ چاپ شده است.
datetime.datetime
ماژول datetime دارای یک کلاس با نام dateclass است که حاوی اطلاعاتی پیرامون اشیای date و time است.
مثال ۹: شی datetime پایتون
پس از اجرای کد بالا، خروجی به صورت زیر خواهد بود:
سه آرگومان اول month ،year و day در سازنده ()datetime اجباری هستند.
مثال ۱۰: چاپ سال، ماه، ساعت، دقیقه و timestamp
پس از اجرای برنامه، خروجی به صورت زیر خواهد بود:
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238
datetime.timedelta
شی timedelta تفاوت بین دو تاریخ یا زمان را نشان میدهد.
مثال ۱۱: تفاوت بین دو تاریخ و ساعت
هنگامی که برنامه اجرا شد، خروجی به صورت زیر خواهد بود.
توجه به این نکته لازم است که t3 و t6 از نوع <class 'datetime.timedelta'> هستند.
مثال ۱۲: تفاوت بین دو شی timedelta
با اجرای قطعه کد بالا، خروجی به صورت زیر خواهد بود.
t3 = 14 days, 13:55:39
در اینجا، دو شی timedelta با عنوان t1 و t2 ساخت شده و تفاوت آنها روی صفحه چاپ شده است.
مثال ۱۳: چاپ کردن شی timedelta منفی
پس از اجرای برنامه بالا، خروجی به صورت زیر خواهد بود.
مثال ۱۴: مدت زمان به ثانیه
میتوان کل مدت ثانیه را با استفاده از شی timedelta و متد ()total_seconds دریافت کرد.
خروجی حاصل از اجرای قطعه کد بالا، به صورت زیر است.
همچنین، میتوان دو تاریخ و زمان را با استفاده از عملگرد «+» تجمیع کرد. همچنین، میتوان یک شی timedelta را در «اعداد صحیح» (Integers) و «ممیز شناور» (floats) ضرب و یا بر آنها تقسیم کرد.
فرمت پایتون datetime
مدلی که تاریخ و زمان ارائه نوشته میشود، ممکن است در مکانها، سازمانها و جاهای مختلف متفاوت باشد. در ایالات متحده آمریکا استفاده از فرمت mm/dd/yyyy متداول است؛ این در حالی است که در انگلستان، از فرمت dd/mm/yyyy استفاده میشود. پایتون، از متدهای ()strftime و ()strptime برای مدیریت این موارد استفاده میکند.
()strftime پایتون - تبدیل شی datetime به رشته
()strftime تحت کلاسهای datetime ،date و time تعریف شده است. متد یک رشته فرمت شده را از شی داده شده datetime ،date یا time را ساخته است.
مثال ۱۵: فرمت کردن تاریخ با استفاده از ()strftime
با اجرای قطعه کد بالا، خروجی به صورت زیر خواهد بود:
time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52
در اینجا، H ،%d ، %m، %Y% و دیگر موارد، کدهای فرمت هستند. متد ()strftime یک یا تعداد بیشتری کد فرمت را دریافت کرده و یک رشته قالببندی شده بر اساس آن را باز میگرداند. در برنامه بالا، s1 ،t و s2 رشتهها هستند.
- %Y - سال [0001,..., 2018, 2019,..., 9999]
- %m - ماه [01, 02, ..., 11, 12]
- %d - روز [01, 02, ..., 30, 31]
- %H - ساعت [00, 01, ..., 22, 23]
- %M - ماه [00, 01, ..., 58, 59]
- %S - ثانیه [00, 01, ..., 58, 59]
()strptime پایتون - تبدیل رشته به datetime
متد ()strptime یک شی datetime را از رشته داده شده میسازد (که تاریخ و ساعت را نمایش میدهد).
مثال ۱۶: ()strptime
خروجی حاصل از اجرای برنامه بالا، به صورت زیر خواهد بود.
date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00
متد ()strptime دو آرگومان زیر را دریافت میکند:
- رشتهای که ارائه دهنده تاریخ و زمان است.
- کد قالب معادل با آرگومان اول
کدهای قالب B ،%d% و %Y، به ترتیب برای month ،day (نام کامل) و سال مورد استفاده قرار میگیرند.
مدیریت زمان در پایتون
فرض میشود که فرد در حال کار روی پروژهای است و نیاز به نمایش تاریخ و زمان بر اساس منطقه زمانی دارد.
به جای آنکه فرد خودش منطقه زمانی را مدیریت کند، میتواند از یک ماژول شخص ثالث pytZ استفاده کند.
پس از اجرای برنامه، خروجی به صورت زیر خواهد بود.
در قطعه کد بالا، datetime_NY و datetime_London اشیای datetime و حاوی تاریخ کنونی و زمان برای منطقه زمانی مربوط به آنها هستند.
مرسی از زحمت ترجمه ی مقالات خانوم حصارکی
خیلی عالی بود خیلی عالی . واقعا عالی