Skip to content

Commit 2efe242

Browse files
author
Saeid Darvish
committed
l25: datetime.datetime, instance methods
1 parent 17b63df commit 2efe242

1 file changed

Lines changed: 57 additions & 1 deletion

File tree

lessons/l25.rst

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@
403403
----------------------------
404404
دو شی ``datetime.date`` پایتون قابلیت مقایسه با یکدیگر را دارند. همچنین می‌توان با استفاده از یک شی ``datetime.timedelta`` مقدار یک شی تاریخ را به جلو یا عقب هدایت کرد:
405405

406-
406+
407407
::
408408

409409
>>> from datetime import date, timedelta
@@ -986,7 +986,63 @@ naive / aware
986986

987987
مقایسه دو شی ``datetime``
988988
----------------------------
989+
دو شی ``datetime.datetime`` پایتون قابلیت مقایسه با یکدیگر را دارند. همچنین می‌توان با استفاده از یک شی ``datetime.timedelta`` مقدار یک شی ``datetime`` را به جلو یا عقب هدایت کرد:
990+
991+
992+
::
993+
994+
>>> from datetime import datetime, timedelta
995+
996+
>>> today = datetime(2021, 4, 15, 8, 20)
997+
998+
>>> yesterday = today - timedelta(days=1)
999+
>>> yesterday
1000+
datetime.datetime(2021, 4, 14, 8, 20)
1001+
1002+
>>> today == today
1003+
True
1004+
>>> today > yesterday
1005+
True
1006+
>>> today < yesterday
1007+
False
1008+
>>> today == yesterday + timedelta(days=1)
1009+
True
1010+
1011+
>>> today - yesterday
1012+
datetime.timedelta(days=1)
1013+
1014+
توجه داشته باشید حاصل تفاضل دو شی ``datetime`` پایتون یک شی از نوع ``datetime.timedelta`` خواهد بود!
1015+
1016+
به مثالی دیگر توجه نمایید::
1017+
1018+
>>> from datetime import timedelta, timezone, datetime
1019+
1020+
>>> tz_et = timezone(timedelta(hours=-5), 'Eastern Time Zone')
1021+
>>> tz_ir = timezone(timedelta(hours=4, minutes=30), 'Asia/Tehran')
1022+
1023+
>>> dt_et = datetime(2021, 4, 15, 12, 0, 0, tzinfo=tz_et)
1024+
>>> dt_ir = datetime(2021, 4, 15, 12, 0, 0, tzinfo=tz_ir)
1025+
1026+
>>> dt_et == dt_ir
1027+
False
1028+
>>> dt_et > dt_ir
1029+
True
1030+
>>> dt_et < dt_ir
1031+
False
1032+
1033+
>>> dt_ir_new = datetime(2021, 4, 15, 21, 30, 0, tzinfo=tz_ir)
1034+
1035+
>>> dt_et == dt_ir_new
1036+
True
1037+
1038+
1039+
در کد بالا درست است که هر دو شی ``t_et`` و ``t_ir`` حاوی یک تاریخ و یک ساعت (``12:00:00 15-04-2021``) می‌باشند ولی باید به این نکته توجه داشت، در حالی ``t_et`` ساعت دوازده را نمایش می‌دهد که نسبت به منطقه زمانی مبنا (UTC) پنج ساعت عقب‌تر است؛ در واقع نه ساعت و سی دقیقه بعد، ``t_ir`` به زمانی خواهد رسید که ``t_et`` اکنون آن را نمایش می‌دهد!
1040+
1041+
1042+
متدهای شی ``datetime``
1043+
----------------------------
9891044

1045+
برخی از Instance methodهای یک شی ``datetime.datetime`` پایتون به شرح زیر هستند:
9901046

9911047

9921048

0 commit comments

Comments
 (0)