Python ДатаВремя, ВремяDelta, Strftime(Формат) с примерами
⚡ Умное резюме
Python Класс `datetime`, наряду с классами `date`, `time` и `timedelta`, обрабатывает даты, время и интервалы как объекты. Модуль `datetime` форматирует вывод с помощью функции `strftime()`, анализирует строки и вычисляет будущие или прошлые моменты времени, используя арифметику `timedelta`.

In Python, дата, время и дата-время Классы предоставляют ряд функций для работы с датами, временем и временными интервалами. Дата и время в Python Это объекты, поэтому при работе с ними вы фактически работаете с объектами, а не со строками или метками времени. При работе с датами или временем необходимо импортировать модуль datetime.
Классы datetime в Python Они подразделяются на 5 основных классов.
- date – манипулировать только датой (месяц, день, год)
- время – время, независимое от дня (час, минута, секунда, микросекунда)
- datetime – комбинация времени и даты (месяц, день, год, час, секунда, микросекунда)
- timedelta — промежуток времени, используемый для манипулирования датами.
- tzinfo — An abstracкласс t для работы с часовыми поясами
Как использовать класс Date и DateTime
Шаг 1) Прежде чем запускать код для формата datetime в Python, важно, чтобы вы импортировали Python модули даты и времени, как показано на скриншоте ниже.
Эти операторы импорта представляют собой заранее определенные части функциональности в Python Библиотека, позволяющая манипулировать датами и временем без написания какого-либо кода.
Перед выполнением рассмотрите следующие моменты: Python код формата даты и времени
from datetime import date
Эта строка сообщает Python интерпретатор для импорта класса даты из модуля datetime в PythonМы не пишем код для реализации этой функциональности работы с датами, а просто импортируем её для собственного использования.
Распечатайте дату, используя date.today()
Функция date.today() имеет несколько связанных с ней свойств. Мы можем вывести конкретный день/месяц/год и многое другое.
Давайте посмотрим пример
Сегодняшний номер дня недели
Функция date.today() также возвращает номер дня недели. Вот таблица дней недели, которая начинается с Monday как 0, а воскресенье как 6.
| день | Номер дня недели |
|---|---|
| Monday | 0 |
| вторник | 1 |
| среда | 2 |
| четверг | 3 |
| пятница | 4 |
| Суббота | 5 |
| Воскресенье | 6 |
Номер дня недели полезен для массивов, индекс которых зависит от дня недели.
Шаг 2) Далее мы создаем экземпляр объекта даты.
Шаг 3) Далее печатаем дату и запускаем код.
Результат соответствует ожиданиям.
Python Текущая дата и время: now() сегодня()
Шаг 1) Как и объекты даты, мы также можем использовать «ОБЪЕКТЫ ДАТА-ВРЕМЯ» in Python. Python Объекты даты и времени предоставляют дату вместе со временем в часы, минуты, секунды и миллисекунды.
Когда мы выполняем код для datetime, он выдает выходные данные с текущей датой и временем.
Шаг 2) С помощью объекта типа «DATETIME OBJECT» можно также вызвать класс времени. Предположим, мы хотим вывести только текущее время без даты.
t = datetime.time(datetime.now())
- Мы импортировали класс времени. Мы будем присваивать ему текущее значение времени, используя datetime.now().
- Мы присваиваем значение текущего времени переменной t.
И это даст мне как раз время. Итак, давайте запустим эту программу.
Итак, как видите, здесь я указал дату и время. А в следующей строке указано только время.
Шаг 3) Мы применим наш индексатор будних дней к списку дней недели, чтобы определить, какой сегодня день недели.
- Оператору дней недели (wd) присваивается число от 0 до 6 в зависимости от текущего дня недели. Здесь мы объявили массив списка дней недели (понедельник, вторник, среда…воскресенье).
- Используйте это значение индекса, чтобы узнать, какой сегодня день. В нашем случае это номер 2, и он представляет среду, поэтому в результате будет напечатано «Которая является средой».
Вот полный код для получения текущей даты и времени, используя datetime сейчас.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Как отформатировать вывод даты и времени с помощью Strftime()
К настоящему моменту мы научились использовать datetime и date. объект в Python. Мы сделаем еще один шаг вперед и узнаем, как использовать функцию форматирования для форматирования времени и даты.
Шаг 1) Сначала мы увидим простой шаг, как отформатировать год. Лучше понять на примере.
- Мы использовали «функция strftime» для форматирования.
- Эта функция использует разные контрольный код дать вывод.
- Каждый управляющий код соответствует различным параметрам, таким как год, месяц, день недели и дата. [(%y/%Y – год), (%a/%A- день недели), (%b/%B- месяц), (%d – день месяца)] .
- В нашем случае это («%Y») который напоминает год, распечатывает полный год с указанием столетия (например, 2018).
Шаг 2) Теперь, если вы замените («%Y») строчными буквами, т. е. ( «%y) и выполните код, на выходе будет отображаться только (18), а не (2018). Столетие года не будет отображаться, как показано на скриншоте ниже.
Шаг 3) Функция strf позволяет задавать дату, день недели, месяц и год отдельно. Кроме того, внеся небольшие изменения в управляющий код функции strftime, можно форматировать стиль текста.
Внутри функции strftime, если заменить (%a) на заглавную букву A, то есть (%A), на выходе получится «Friday» вместо простого сокращения «Fri».
Шаг 4) С помощью функции «Strftime» мы также можем получить локальное системное время, дату или и то, и другое.
- %C- указывает местную дату и время.
- %x- указывает местную дату
- %X- указывает местное время
На выходе вы можете увидеть результат, как и ожидалось.
Шаг 5) «Функция strftime» позволяет назвать время в любом формате 24 часа или 12 часов.
Просто определив управляющий код, например %I/H для часа, % M для минуты, %S для секунды, можно вызвать время для разных форматов.
12 часа время объявлено [print now.strftime("%I:%M:%S %p)]
24 часа время объявлено [print now.strftime("%H:%M")]
Вот полный код для преобразования даты и времени в объект String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Что такое Timedelta в Python?
Timedelta в Python Объект timedelta представляет собой продолжительность. Он в основном используется для вычисления продолжительности между двумя датами и временем. Он также используется для получения объекта с некоторой разницей в дате и времени. Объект timedelta поддерживает математические операции, такие как сложение и вычитание.tracумножение, деление и т. д.
Как использовать объекты Timedelta
С Python объекты timedelta позволяют оценить время как для будущего, так и для прошлого. Другими словами, это промежуток времени, позволяющий предсказать какой-либо особый день, дату или время.
Помните, что эта функция предназначена не для распечатки времени или даты, а для РАСЧЕТА будущего или прошлого.Давайте посмотрим Python пример timedelta для лучшего понимания.
Шаг 1) Чтобы запустить объекты Timedelta, вам необходимо сначала объявить оператор импорта, а затем выполнить код.
- Напишите оператор импорта для timedelta
- Теперь напишите код для печати объекта из разницы во времени, как показано на снимке экрана.
- Запустите код. Timedelta представляет собой промежуток в 365 дней, 8 часов и 15 минут и выводит то же самое
Сбивает с толку? Следующий шаг поможет-
Шаг 2) Давайте получим сегодняшнюю дату и время, чтобы проверить, хорошо ли работает наш оператор импорта. Когда код выполняется, он печатает сегодняшнюю дату, что означает, что наш оператор импорта работает хорошо.
Шаг 3) Мы увидим, как можно получить дату через год с настоящего момента через объекты delta. Когда мы запускаем код, он выдает ожидаемый результат.
Шаг 4) Еще один пример того, как дельта времени может быть использована для расчета будущей даты из текущей даты и времени.
Шаг 5) Давайте рассмотрим более сложный пример. Я хотел бы определить, сколько дней прошло после Нового года. Вот как мы поступим
- Используя Today= date.today(), мы получим сегодняшнюю дату.
- Мы знаем, что Новый год всегда приходится на 1 января, но год может быть другим. Используя nyd= date(today.year,1,1), мы сохраняем новый год в переменной nyd.
- Если nyd < today: проверяется, превышает ли текущая дата дату Нового года. Если да, то запускается цикл while.
- ((today-nyd).days) показывает разницу между текущей датой и новым годом в ДНЯХ.
Вывод показывает, что «Новый год уже прошел 11 дней назад».
Вот полный рабочий код
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Пример
Следующие примеры демонстрируют те же операции с датой и временем, написанные для Python 2, где print — это оператор, а не функция. Используйте эти версии только при поддержке устаревших версий. Python 2 кода.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















