Python дата и время. Работа с датой и временем в Python, как и практически в любом другом языке программирования, является одним из важнейших частей. В данной статье, мы постараемся разобрать несколько упражнений, которые помогут вам лучше понять, логику работы с датой и временем. В этой статье, мы с вами разберем 10 примеров/упражнений которые помогут вам отточить ваши навыки. Все приведенные примеры тестировались на Python 3.
Содержание:
- Упражнение 1: Печать текущей даты и времени в Python
- Упражнение 2: Преобразование строки в объект datetime
- Упражнение 3: Вычитание недели (7 дней) из заданной даты в Python
- Упражнение 4: Вывести дату в следующем формате
- Упражнение 5: Найти день недели для заданной даты
- Упражнение 6: Добавить неделю (7 дней) и 12 часов к заданной дате
- Упражнение 7: Вывести текущее время в миллисекундах
- Упражнение 8: Преобразовать следующее время даты в строку
- Упражнение 9: Вычислить дату через 4 месяца от текущей даты
- Упражнение 10: Вычислить количество дней между двумя заданными датами
Упражнение 1: Печать текущей даты и времени в Python
Решение
Используйте datetime модуль
import datetime
# Print date and time
print(datetime.datetime.now())
# only time
print(datetime.datetime.now().time())
Решение 2 используйте time.strftime()
from time import gmtime, strftime
print(strftime("%Y-%m-%d %H:%M:%S", gmtime()))
Упражнение 2: Преобразование строки в объект datetime
Например, Вы получили следующую дату в строковом формате. Пожалуйста, преобразуйте ее в объект Python DateTime.
Дано:
date_string = "Feb 25 2020 4:20PM"
Ожидаемый результат:
2020-02-25 16:20:00
Решение
from datetime import datetime
date_string = "Feb 25 2020 4:20PM"
datetime_object = datetime.strptime(date_string, '%b %d %Y %I:%M%p')
print(datetime_object)
Упражнение 3: Вычитание недели (7 дней) из заданной даты в Python
Дано:
given_date = datetime(2020, 2, 25)
Ожидаемый результат:
2020-02-18
Решение
from datetime import datetime, timedelta
given_date = datetime(2020, 2, 25)
print("Given date")
print(given_date)
days_to_subtract = 7
res_date = given_date - timedelta(days=days_to_subtract)
print("New Date")
print(res_date)
Упражнение 4: Вывести дату в следующем формате
Day_name Day_number Month_name Year
Дано:
given_date = datetime(2020, 2, 25)
Ожидаемый результат:
Tuesday 25 February 2020
Обратитесь за помощью к кодам формата даты
Решение
from datetime import datetime
given_date = datetime(2020, 2, 25)
print("Given date is")
print(given_date.strftime('%A %d %B %Y'))
Упражнение 5: Найти день недели для заданной даты
Дано:
given_date = datetime(2020, 7, 26)
Ожидаемый результат:
Sunday
Решение 1:
from datetime import datetime
given_date = datetime(2020, 7, 26)
# получаем день недели как целое число
print(given_date.today().weekday())
# Получаем английское название дня недели
print(given_date.strftime('%A'))
Решение 2 использование модуля календаря
import calendar
from datetime import datetime
given_date = datetime(2020, 7, 26)
weekday = calendar.day_name[given_date.weekday()]
print(weekday)
Упражнение 6: Добавить неделю (7 дней) и 12 часов к заданной дате
Дано:
# 2020-03-22 10:00:00
given_date = datetime(2020, 3, 22, 10, 0, 0)
Ожидаемый результат:
2020-03-29 22:00:00
Решение
from datetime import datetime, timedelta
given_date = datetime(2020, 3, 22, 10, 00, 00)
print("Given date")
print(given_date)
days_to_add = 7
res_date = given_date + timedelta(days=days_to_add, hours=12)
print("New Date")
print(res_date)
Упражнение 7: Вывести текущее время в миллисекундах
Решение
import time
milliseconds = int(round(time.time() * 1000))
print(milliseconds)
Упражнение 8: Преобразовать следующее время даты в строку
Дано:
given_date = datetime(2020, 2, 25)
Ожидаемый результат:
"2020-02-25 00:00:00"
Решение
from datetime import datetime
given_date = datetime(2020, 2, 25)
string_date = given_date.strftime("%Y-%m-%d %H:%M:%S")
print(string_date)
Упражнение 9: Вычислить дату через 4 месяца от текущей даты
Дано:
# 2020-02-25
given_date = datetime(2020, 2, 25).date()
Ожидаемый результат:
2020-06-25
Решение:
- Нам нужно использовать relativedelta модуля Python dateutil. Мы можем добавить 4 месяца к заданной дате с помощью relativedelta.
- Relativedelta полезна, когда мы хотим работать с месяцами, в которых 29, 30, 31 день.
from datetime import datetime
from dateutil.relativedelta import relativedelta
# 2020-02-25
given_date = datetime(2020, 2, 25).date()
months_to_add = 4
new_date = given_date + relativedelta(months=+ months_to_add)
print(new_date)
Упражнение 10: Вычислить количество дней между двумя заданными датами
Дано:
# 2020-02-25
date_1 = datetime(2020, 2, 25)
# 2020-09-17
date_2 = datetime(2020, 9, 17)
Ожидаемый результат:
205 days
Решение
from datetime import datetime
# 2020-02-25
date_1 = datetime(2020, 2, 25).date()
# 2020-09-17
date_2 = datetime(2020, 9, 17).date()
delta = None
if date_1 > date_2:
print("date_1 is greater")
delta = date_1 - date_2
else:
print("date_2 is greater")
delta = date_2 - date_1
print("Difference is", delta.days, "days")
Если у вас возникают вопросы по описанным упражнениям, пишите в комментариях.
