آموزش تاریخ و زمان در برنامه نویسی پایتون
آموزش تاریخ و زمان در برنامه نویسی پایتون
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، شما می توانید آموزش تاریخ و زمان در برنامه نویسی پایتون را با استفاده از مثالهایی در پایتون یاد بگیرید.
پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار
پایتون ماژولی به نام datetime دارد که می تواند با تاریخ و زمان کار کند. بیایید چند برنامه ساده مرتبط با تاریخ و زمان ایجاد کنیم تا مسئله را بهتر متوجه شویم.
مثال 1: دریافت تاریخ و زمان فعلی
1 2 3 4 |
import datetime datetime_object = datetime.datetime.now() print(datetime_object) |
خروجی
1 |
2018-12-19 09:26:03.478039 |
در اینجا ما با استفاده از عبارت import datetime ماژول datetime را وارد کرده ایم.
یکی از کلاسهای تعریف شده در ماژول datetime کلاس datetime است. سپس ما از متد ()now برای ایجاد یک شی dat datetime استفاده کردیم که شامل تاریخ و زمان محلی فعلی است.
مثال 2: دریافت تاریخ فعلی
1 2 3 4 |
import datetime date_object = datetime.date.today() print(date_object) |
خروجی
1 |
2018-12-19 |
در این برنامه ما از متد ()Today تعریف شده در کلاس date برای بدست آوردن یک شی تاریخ با تاریخ محلی فعلی استفاده کرده ایم.
چه چیزی درون زمان قرار دارد؟
ما می توانیم از تابع ()dir برای به دست آوردن لیستی شامل تمام ویژگی های یک ماژول استفاده کنیم.
1 2 3 |
import datetime print(dir(datetime)) |
خروجی
1 |
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo'] |
کلاسهایی که معمولاً در ماژول datetime استفاده می شوند عبارتند از:
- date Class
- time Class
- datetime Class
- timedelta Class
می توانید شی date را از کلاس date پیاده ساری کنید. یک شی تاریخ، تاریخ (سال ، ماه و روز) (year, month and day) را نشان می دهد.
مثال 3: شی تاریخ برای نمایش تاریخ در پایتون
1 2 3 4 |
import datetime d = datetime.date(2019, 4, 13) print(d) |
خروجی
1 |
2019-04-13 |
()date در مثال بالا سازنده کلاس تاریخ است. سازنده سه آرگومان می گیرد: سال ، ماه و روز.
متغیر a یک شی تاریخ است.
ما فقط می توانیم کلاس تاریخ را از ماژول datetime وارد کنیم. نحوه کار به صورت زیر است:
1 2 3 4 |
from datetime import date a = date(2019, 4, 13) print(a) |
مثال 4: دریافت تاریخ فعلی در برنامه نویسی پایتون
با استفاده از متد class به نام ()today می توانید یک شی date حاوی تاریخ فعلی ایجاد کنید. نحوه کار به صورت زیر است:
1 2 3 4 5 |
from datetime import date today = date.today() print("Current date =", today) |
مثال 5: دریافت تاریخ را از یک timestamp
همچنین می توانیم از یک timestamp شی date را ایجاد کنیم. Unix timestamp تعداد ثانیه های یک تاریخ خاص تا 1 ژانویه 1970 در UTC است. می توانید با استفاده از متد ()fromtimestamp یک timestamp را به تاریخ تبدیل کنید.
1 2 3 4 |
from datetime import date timestamp = date.fromtimestamp(1326244364) print("Date =", timestamp) |
خروجی
1 |
Date = 2012-01-11 |
مثال 6: چاپ سال، ماه و روز در برنامه نویسی پایتون
ما می توانیم سال، ماه، روز، روز هفته و غیره را به راحتی از شی date دریافت کنیم. نحوه کار به صورت زیر است:
1 2 3 4 5 6 7 8 |
from datetime import date # date object of today's date today = date.today() print("Current year:", today.year) print("Current month:", today.month) print("Current day:", today.day) |
datetime.time
یک شی time زمانی که از کلاس time پیاده سازی شده است، زمان محلی را نشان می دهد.
مثال 7: شی time برای نشان دادن زمان
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from datetime import time # time(hour = 0, minute = 0, second = 0) a = time() print("a =", a) # time(hour, minute and second) b = time(11, 34, 56) print("b =", b) # time(hour, minute and second) c = time(hour = 11, minute = 34, second = 56) print("c =", c) # time(hour, minute, second, microsecond) d = time(11, 34, 56, 234566) print("d =", d) |
خروجی
1 2 3 4 |
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566 |
مثال 8: چاپ ساعت، دقیقه، ثانیه و میکروثانیه در پایتون
پس از ایجاد یک شی time، می توانید ویژگی های آن مانند ساعت، دقیقه و غیره را به راحتی چاپ کنید.
1 2 3 4 5 6 7 8 |
from datetime import time a = time(11, 34, 56) print("hour =", a.hour) print("minute =", a.minute) print("second =", a.second) print("microsecond =", a.microsecond) |
خروجی
1 2 3 4 |
hour = 11 minute = 34 second = 56 microsecond = 0 |
توجه داشته باشید که ما از آرگومان میکرو ثانیه عبور نکردیم. از این رو ، مقدار پیش فرض آن 0 چاپ می شود.
datetime.datetime
ماژول datetime دارای یک کلاس به نام dateclass است که می تواند حاوی اطلاعاتی از اشیا date و time باشد.
مثال 9: شی datetime در برنامه نویسی پایتون
1 2 3 4 5 6 7 8 9 |
from datetime import datetime #datetime(year, month, day) a = datetime(2018, 11, 28) print(a) # datetime(year, month, day, hour, minute, second, microsecond) b = datetime(2017, 11, 28, 23, 55, 59, 342380) print(b) |
خروجی
1 2 |
2018-11-28 00:00:00 2017-11-28 23:55:59.342380 |
سه آرگومان اول سال، ماه و روز در سازنده ()datetime اجباری است.
مثال 10: چاپ سال، ماه، ساعت، دقیقه و timestamp
1 2 3 4 5 6 7 8 |
from datetime import datetime a = datetime(2017, 11, 28, 23, 55, 59, 342380) print("year =", a.year) print("month =", a.month) print("hour =", a.hour) print("minute =", a.minute) print("timestamp =", a.timestamp()) |
خروجی
1 2 3 4 5 6 |
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238 |
datetime.timedelta
یک شی timedelta تفاوت بین دو تاریخ یا زمان را نشان می دهد.
مثال 11: تفاوت بین دو تاریخ و زمان
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from datetime import datetime, date t1 = date(year = 2018, month = 7, day = 12) t2 = date(year = 2017, month = 12, day = 23) t3 = t1 - t2 print("t3 =", t3) t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33) t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13) t6 = t4 - t5 print("t6 =", t6) print("type of t3 =", type(t3)) print("type of t6 =", type(t6)) |
خروجی
1 2 3 4 |
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'> |
توجه داشته باشید ، هر دو t3 و t6 از نوع <class ‘datetime.timedelta’> هستند.
مثال 12: تفاوت بین دو شی timedelta
1 2 3 4 5 6 7 |
from datetime import timedelta t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33) t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54) t3 = t1 - t2 print("t3 =", t3) |
خروجی
1 |
t3 = 14 days, 13:55:39 |
در اینجا، ما دو آبجکت timedelta t1 و t2 ایجاد کرده ایم و تفاوت آنها روی صفحه چاپ می شود.
مثال 13: چاپ شی timedelta منفی
1 2 3 4 5 6 7 8 |
from datetime import timedelta t1 = timedelta(seconds = 33) t2 = timedelta(seconds = 54) t3 = t1 - t2 print("t3 =", t3) print("t3 =", abs(t3)) |
خروجی
1 2 |
t3 = -1 day, 23:59:39 t3 = 0:00:21 |
مثال 14: مدت زمان در چند ثانیه
با استفاده از رمتد ()total_seconds می توانید تعداد کل ثانیه های یک شی timedelta را بدست آورید.
1 2 3 4 |
from datetime import timedelta t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", t.total_seconds()) |
خزوجی
1 2 3 4 |
from datetime import timedelta t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", t.total_seconds()) |
خروجی
1 |
total seconds = 435633.233423 |
همچنین می توانید با استفاده از عملگر + جمع دو تاریخ و زمان را پیدا کنید. همچنین، می توانید یک شی timedelta را بر روی اعداد صحیح و ممیز شناور و تقسیم کنید.
فرمت تاریخ و زمان در برنامه نویسی پایتون
نحوه نمایش تاریخ و زمان ممکن است در مکان ها، سازمان ها و غیره متفاوت باشد. استفاده از mm / dd / yyyy در ایالات متحده معمول تر است، در حالی که dd / mm / yyyy در انگلستان بیشتر استفاده می شود.
پایتون برای کنترل این روش دارای متد های ()strftime و ()strptime است.
() strftime- شی تاریخ و زمان به رشته
متد ()strftime در کلاس ها، تاریخ، زمان کلاسها تعریف می شود. این روش یک رشته قالب بندی شده را از یک تاریخ معین، زمان داده یا شی ایجاد می کند.
مثال 15: فرمت تاریخ با استفاده از ()strftime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from datetime import datetime # current date and time now = datetime.now() t = now.strftime("%H:%M:%S") print("time:", t) s1 = now.strftime("%m/%d/%Y, %H:%M:%S") # mm/dd/YY H:M:S format print("s1:", s1) s2 = now.strftime("%d/%m/%Y, %H:%M:%S") # dd/mm/YY H:M:S format print("s2:", s2) |
خروجی
1 2 3 |
time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52 |
در اینجا ،٪ Y ،٪ m ،٪ d ،٪ H و غیره کد فرمت هستند. متد ()strftime یک یا چند کد فرمت را می گیرد و یک رشته قالب بندی شده را بر اساس آن برمی گرداند.
در برنامه فوق، t ،s1 و 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 را از یک رشته مشخص ایجاد می کند (که تاریخ و زمان را نشان می دهد).
مثال 16: ()strptime
1 2 3 4 5 6 7 |
from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) |
خروجی
1 2 |
date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00 |
متد ()strptime دو آرگومان می گیرد:
- رشته ای که تاریخ و زمان را نشان می دهد
- کد فرمت معادل آرگومان اول است
ضمناً ،٪ d ،٪ B و٪ Y کد فرمت به ترتیب برای روز، ماه (نام کامل) و سال استفاده می شود.
مدیریت منطقه زمانی در پایتون
فرض کنید شما در حال کار بر روی یک پروژه هستید و باید تاریخ و زمان را بر اساس منطقه زمانی آنها نمایش دهید. به جای اینکه بخواهید خودتان منطقه زمانی را اداره کنید، پیشنهاد می کنیم از ماژول pytZ شخص ثالث استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from datetime import datetime import pytz local = datetime.now() print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S")) tz_NY = pytz.timezone('America/New_York') datetime_NY = datetime.now(tz_NY) print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S")) tz_London = pytz.timezone('Europe/London') datetime_London = datetime.now(tz_London) print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S")) |
خروجی
1 2 3 |
Local time: 2018-12-20 13:10:44.260462 America/New_York time: 2018-12-20 13:10:44.260462 Europe/London time: 2018-12-20 13:10:44.260462 |
در اینجا datetime_NY و datetime_London اشیا dat datetime هستند که حاوی تاریخ و زمان فعلی منطقه زمانی مربوطه هستند.
لیست جلسات قبل آموزش برنامه نویسی پایتون
- آموزش نصب و اجرای برنامه نویسی پایتون
- کلیدواژه ها و شناسه های برنامه نویسی پایتون
- دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
- متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون
- انواع داده ها در برنامه نویسی پایتون
- تبدیل نوع در برنامه نویسی پایتون
- ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
- عملگرها در برنامه نویسی پایتون
- نام و دامنه در برنامه نویسی پایتون
- دستور شرطی if…else در برنامه نویسی پایتون
- حلقه for در برنامه نویسی پایتون
- حلقه while در برنامه نویسی پایتون
- دستورات break و continue در برنامه نویسی پایتون
- دستور pass در برنامه نویسی پایتون
- توابع در برنامه نویسی پایتون
- آرگومان تابع در برنامه نویسی پایتون
- تابع بازگشتی در برنامه نویسی پایتون
- تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
- متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
- کلیدواژه global در برنامه نویسی پایتون
- ماژول های برنامه نویسی پایتون
- پکیج ها در برنامه نویسی پایتون
- اعداد و تبدیل نوع داده در برنامه نویسی پایتون
- لیست در برنامه نویسی پایتون
- تاپل در برنامه نویسی پایتون
- رشته ها در برنامه نویسی پایتون
- مجموعه ها در برنامه نویسی پایتون
- دیکشنری در برنامه نویسی پایتون
- عملیات ورودی/خروجی در برنامه نویسی پایتون
- دایرکتوری و مدیریت فایل ها در برنامه نویسی پایتون
- خطاها و استثناهای توکار در برنامه نویسی پایتون
- مدیریت استثناها در برنامه نویسی پایتون
- استثناهای تعریف شده توسط کاربر در برنامه نویسی پایتون
- برنامه نویسی شی گرا در پایتون
- اشیا و کلاس ها در برنامه نویسی پایتون
- وراثت در برنامه نویسی پایتون
- وراثت چندگانه در برنامه نویسی پایتون
- سربارگذاری عملگرها در برنامه نویسی پایتون
- تکرار کننده ها در برنامه نویسی پایتون
- Generator در برنامه نویسی پایتون
- بستار در برنامه نویسی پایتون
- دکوراتور در برنامه نویسی پایتون
- دکوراتور property در برنامه نویسی پایتون
- عبارات با قاعده در برنامه نویسی پایتون (RegEx)
- تمرین برنامه نویسی پایتون برای پرینت !Hello world
- تمرین برنامه نویسی پایتون برای جمع کردن دو عدد
- تمرین برنامه نویسی پایتون برای یافتن ریشه مربع
- تمرین برنامه نویسی پایتون برای محاسبه مساحت یک مثلث
- تمرین برنامه نویسی پایتون برای حل معادله درجه دوم
- تمرین برنامه نویسی پایتون برای مبادله دو متغیر
- تمرین برنامه نویسی پایتون برای تولید عدد تصادفی
- تمرین برنامه نویسی پایتون برای تبدیل کیلومتر به مایل
- تمرین برنامه نویسی پایتون برای تبدیل سانتیگراد به فارنهایت
- تمرین برنامه نویسی پایتون برای بررسی مثبت یا منفی بودن یک عدد
- تمرین برنامه پایتون برای بررسی زوج یا فرد بودن یک عدد
- تمرین برنامه نویسی پایتون برای بررسی سال کبیسه
- تمرین برنامه نویسی پایتون برای یافتن بزرگترین عدد در بین سه عدد
- تمرین برنامه نویسی پایتون برای بررسی عدد اول
- تمرین برنامه نویسی پایتون برای چاپ تمام اعداد اول در یک بازه زمانی
- تمرین برنامه نویسی پایتون برای یافتن فاکتورهای یک عدد
- تمرین برنامه نویسی پایتون برای نمایش جدول ضرب
- تمرین برنامه نویسی پایتون برای چاپ توالی فیبوناچی
- تمرین برنامه نویسی پایتون برای بررسی عدد آرمسترانگ
- تمرین برنامه نویسی پایتون برای یافتن عدد آرمسترانگ بین دو عدد صحیح
- تمرین برنامه نویسی پایتون برای یافتن مجموع اعداد طبیعی
- تمرین برنامه نویسی پایتون برای نمایش توان 2 با استفاده از تابع بی نام
- تمرین برنامه نویسی پایتون برای یافتن اعداد قابل تقسیم بر عدد دیگری
- تمرین برنامه نویسی پایتون برای تبدیل دهدهی به باینری، اکتال و هگزادسیمال
- تمرین برنامه نویسی پایتون برای یافتن مقدار کاراکتر ASCII
- تمرین برنامه نویسی پایتون برای یافتن HCF یا GCD
- تمرین برنامه نویسی پایتون برای یافتن LCM
- تمرین برنامه نویسی پایتون برای یافتن فاکتورهای یک عدد
- تمرین برنامه نویسی پایتون برای ساخت یک ماشین حساب ساده
- تمرین برنامه نویسی پایتون برای جابجایی کارت های Deck
- تمرین برنامه نویسی پایتون برای نمایش تقویم
- تمرین برنامه نویسی پایتون برای نمایش توالی فیبوناچی با استفاده از بازگشت
- تمرین برنامه نویسی پایتون برای یافتن مجموع اعداد طبیعی با استفاده از بازگشت
- تمرین برنامه نویسی پایتون برای یافتن فاکتورهای عدد با استفاده از بازگشت
- تمرین برنامه نویسی پایتون برای تبدیل دهدهی به باینری با استفاده از بازگشت
- تمرین برنامه نویسی پایتون برای جمع دو ماتریس
- تمرین برنامه نویسی پایتون برای انتقال یک ماتریس
- تمرین برنامه نویسی پایتون برای ضرب دو ماتریس
- تمرین برنامه نویسی پایتون برای بررسی پالیندروم یک رشته
- تمرین برنامه نویسی پایتون برای حذف علائم نگارشی از یک رشته
- تمرین برنامه نویسی پایتون برای مرتب سازی کلمات به ترتیب حروف الفبا
- تمرین برنامه نویسی پایتون برای نشان دادن مجموعه ها
- تمرین برنامه نویسی پایتون برای شمارش تعداد هر مصوت
- تمرین برنامه نویسی پایتون برای ادغام نامه ها
- تمرین برنامه نویسی پایتون برای یافتن اندازه (وضوح) یک تصویر
- تمرین برنامه نویسی پایتون برای یافتن هش یک فایل
دیدگاه شما