Skip to content

Commit 55589eb

Browse files
author
Saeid Darvish
committed
l25: datetime.datetime, starting
1 parent e4a80cc commit 55589eb

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

lessons/l25.rst

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,10 +791,88 @@ naive / aware
791791
کلاس ``datetime.datetime``
792792
~~~~~~~~~~~~~~~~~~~~~~~~~~~
793793

794+
اشیای این کلاس پرکاربردترین و رایج‌ترین نوع از ماژول datetime هستند چرا که به طور هم زمان نسبت به ساعت (Time) و تاریخ (Date) آگاهی دارند [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime-objects>`__]. اساس محاسبه تاریخ در این کلاس نیز همانند ``datetime.date`` بر اساس گاه‌شماری میلادی (Gregorian calendar) و اساس محاسبه ساعت نیز همانند کلاس ``datetime.time`` به ازای هر شبانه‌روز دقیقا برابر ``24*3600`` ثانیه می‌باشد.
794795

795796

796797

798+
ایجاد شی ``datetime``
799+
---------------------------
797800

801+
به شیوه‌ها زیر می‌توان یک شی تاریخ از نوع ``datetime.datetime`` ایجاد کرد:
802+
803+
804+
805+
**۱- با استفاده از نمونه‌سازی**:
806+
807+
الگوی ایجاد شی از این کلاس به صورت زیر است که پارامترهای موجود آن دقیقا برابر پارامترهای دو کلاس ``datetime.date`` و ``datetime.time`` می‌باشند::
808+
809+
datetime(year,
810+
month,
811+
day,
812+
hour=0,
813+
minute=0,
814+
second=0,
815+
microsecond=0,
816+
tzinfo=None, *, fold=0)
817+
818+
819+
::
820+
821+
822+
>>> import datetime
823+
>>> dt = datetime.datetime(year=2021, month=4, day=7, hour=23, minute=18)
824+
>>> dt
825+
datetime.datetime(2021, 4, 7, 23, 18)
826+
827+
|
828+
829+
**۲- با استفاده از کلاس متد** ``today`` [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime.datetime.today>`__]، این متد زمان لحظه جاری را بدون در نظر گرفتن منطقه طمانی برمی‌گرداند (``tzinfo=None``)::
830+
831+
832+
>>> import datetime
833+
834+
>>> datetime.datetime.today()
835+
datetime.datetime(2021, 4, 13, 21, 2, 0, 485083)
836+
837+
|
838+
839+
**۳- با استفاده از کلاس متد** ``(tz=None)now`` [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime.datetime.now>`__]، عملکرد این متد نیز همانند ``today`` می‌باشد با این تفاوت که می‌توان یک شی منطقه زمانی نیز به صورت آرگومان به آن ارسال نمود::
840+
841+
842+
>>> import datetime
843+
844+
>>> datetime.datetime.now()
845+
datetime.datetime(2021, 4, 13, 21, 2, 0, 485083)
846+
847+
::
848+
849+
>>> import datetime
850+
851+
>>> tz = datetime.timezone(datetime.timedelta(hours=4, minutes=30))
852+
>>> datetime.datetime.now(tz)
853+
datetime.datetime(2021, 4, 13, 21, 2, 0, 485083, tzinfo=datetime.timezone(datetime.timedelta(seconds=16200)))
854+
855+
856+
857+
|
858+
859+
**۴- با استفاده از کلاس متد** ``utcnow`` [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow>`__]، خروجی این متد همانند خروجی ``datetime.now(timezone.utc)`` می‌باشد. یعنی زمان لحظه جاری را بر اساس منطقه زمانی UTC برمی‌گرداند ولی با این تفاوت که مقدار پارامتر ``tzinfo`` آن برابر ``None`` خواهد بود::
860+
861+
862+
>>> import datetime
863+
864+
>>> datetime.datetime.now()
865+
datetime.datetime(2021, 4, 13, 21, 15, 33, 635410)
866+
867+
>>> datetime.datetime.now(datetime.timezone.utc)
868+
datetime.datetime(2021, 4, 13, 16, 45, 33, 635410, tzinfo=datetime.timezone.utc)
869+
870+
::
871+
872+
>>> import datetime
873+
874+
>>> datetime.datetime.utcnow()
875+
datetime.datetime(2021, 4, 13, 16, 45, 33, 635410)
798876

799877

800878

0 commit comments

Comments
 (0)