2.1. Datetime Dates and Time¶
2.1.1. Creating date
objects¶
Create date
object with custom date:
from datetime import date
d = date(1961, 4, 12)
d # datetime.date(1961, 4, 12)
d.year # 1961
d.month # 4
d.day # 12
Create date
object with current date:
from datetime import date
today = date.today()
today # datetime.date(2020, 1, 5)
today.year # 2020
today.month # 1
today.day # 5
2.1.2. date
methods¶
Python defines Monday as zero
ISO defines Monday as one
date
object methods. Python defines Monday as zero. ISO defines Monday as one:
from datetime import date
# Armstrong made a first step on the Moon on Monday
d = date(1969, 7, 21)
d # datetime.date(1969, 7, 21)
d.weekday() # 0
d.isoweekday() # 1
d.isoformat() # '1969-07-21'
2.1.3. Creating time
objects¶
Create time
object with custom time:
from datetime import time
t = time(2, 56, 15)
# datetime.time(2, 56, 15)
t.hour # 2
t.minute # 56
t.second # 15
t.microsecond # 0
Create time
object representing midnight and noon:
from datetime import time
time() # datetime.time(0, 0)
time(0, 0) # datetime.time(0, 0)
time(0, 0, 0) # datetime.time(0, 0)
time(12) # datetime.time(12, 0)
time(12, 0) # datetime.time(12, 0)
time(12, 0, 0) # datetime.time(12, 0)
time(24, 0) # ValueError: hour must be in 0..23
2.1.4. Creating datetime
objects¶
Create datetime
object:
from datetime import datetime
dt = datetime(1969, 7, 21, 2, 56, 15)
dt # datetime.datetime(1969, 7, 21, 2, 56, 15)
dt.year # 1969
dt.month # 7
dt.day # 21
dt.hour # 2
dt.minute # 56
dt.second # 15
dt.microsecond # 0
Create datetime
with empty time (representing midnight):
from datetime import datetime
dt = datetime(1969, 7, 21)
df # datetime.datetime(1969, 7, 21, 0, 0, 0)
dt.year # 1969
dt.month # 7
dt.day # 21
dt.hour # 0
dt.minute # 0
dt.second # 0
dt.microsecond # 0
Create datetime
from date
and time
objects:
from datetime import datetime, date, time
d = date(1969, 7, 21)
t = time(2, 56, 15)
datetime(
year=d.year,
month=d.month,
day=d.day,
hour=t.hour,
minute=t.minute,
second=t.second)
# datetime.datetime(1969, 7, 21, 2, 56, 15)
datetime(d.year, d.month, d.day, t.hour, t. minute, t.second)
# datetime.datetime(1969, 7, 21, 2, 56, 15)
datetime.combine(d, t)
# datetime.datetime(1969, 7, 21, 2, 56, 15)
2.1.5. datetime
methods¶
Python defines Monday as zero
ISO defines Monday as one
datetime
methods:
from datetime import datetime
dt = datetime(1969, 7, 21, 2, 56, 15)
dt # datetime.datetime(1969, 7, 21, 2, 56, 15)
dt.date() # datetime.date(1969, 7, 21)
dt.time() # datetime.time(2, 56, 15)
d.weekday() # 0
d.isoweekday() # 1
dt.isoformat() # '1969-07-21T02:56:15'
2.1.6. Current datetime
in local time¶
Current datetime
in local timezone:
from datetime import datetime
now = datetime.now()
now # datetime.datetime(2019, 1, 5, 20, 15, 0, 547414)
now.year # 2019
now.month # 1
now.day # 5
now.hour # 20
now.minute # 15
now.second # 0
now.microsecond # 547414
2.1.7. Assignments¶
"""
* Assignment: Datetime Create Custom
* Complexity: easy
* Lines of code: 3 lines
* Time: 3 min
English:
1. First human (Yuri Gagarin) flown to space on
April 12th, 1961 at 6:07 a.m. from Bajkonur Cosmodrome in Kazahstan
2. Create `date` object representing date of the launch
3. Create `time` object representing time of the launch
4. Combine date and time into `datetime` object representing
exact moment of the launch
Polish:
1. Pierwszy człowiek (Juri Gagarin) poleciał w kosmos
12 kwietnia 1961 roku o 6:07 rano z kosmodromu Bajkonur w Kazachstanie
1. Stwórz obiekt `date` reprezentujący datę startu
2. Stwórz obiekt `time` reprezentujący czas startu
3. Połącz datę i czas w obiekt `datetime` reprezentujący
dokładny moment startu
Tests:
>>> assert type(d) is date, \
'Variable `dt` has invalid type, must be a date'
>>> assert type(t) is time, \
'Variable `t` has invalid type, must be a time'
>>> assert type(dt) is datetime, \
'Variable `dt` has invalid type, must be a datetime'
>>> str(d)
'1961-04-12'
>>> str(t)
'06:07:00'
>>> str(dt)
'1961-04-12 06:07:00'
"""
# Given
from datetime import datetime, date, time
d = ... # date: representing April 12th, 1961 6:07 a.m.
t = ... # time: representing April 12th, 1961 6:07 a.m.
dt = ... # datetime: representing April 12th, 1961 6:07 a.m.
"""
* Assignment: Datetime Create Current
* Complexity: easy
* Lines of code: 3 lines
* Time: 3 min
English:
1. Create `datetime` object with current date and time
2. Create `date` object with current date
3. Create `time` object with current time
4. Date and time must be from system, not hardcoded in code
Polish:
1. Stwórz obiekt `datetime` z obecną datą i czasem
2. Stwórz obiekt `date` z obecną datą
3. Stwórz obiekt `time` z obecnym czasem
4. Data i czas ma być pobierana z systemu, nie zapisana w kodzie
Tests:
>>> assert type(dt) is datetime, \
'Variable `dt` has invalid type, must be a datetime'
>>> assert type(d) is date, \
'Variable `dt` has invalid type, must be a date'
>>> assert type(t) is time, \
'Variable `t` has invalid type, must be a time'
"""
# Given
from datetime import datetime, date, time
dt = ... # datetime: representing current moment
d = ... # date: representing current moment
t = ... # time: representing current moment