Python DateTime, TimeDelta, Strftime (формат) с примерами
В Python дата, время и дата/время классы предоставляют ряд функций для работы с датами, временем и временными интервалами. Дата и дата и время в Python являются объектами, поэтому, когда вы манипулируете ими, вы на самом деле манипулируете объектами, а не строками или отметками времени. Всякий раз, когда вы манипулируете датами или временем, вам нужно импортировать функцию datetime.
Классы даты и времени в Python подразделяются на 5 основных классов.
- дата — манипулировать только датой (месяц, день, год)
- время – время, не зависящее от дня недели (час, минута, секунда, микросекунда).
- datetime — сочетание времени и даты (месяц, день, год, час, секунда, микросекунда).
- timedelta — продолжительность времени, используемая для манипулирования датами.
- tzinfo – абстрактный класс для работы с часовыми поясами.
В этом уроке мы изучим-
- Как использовать класс Date &DateTime
- Вывести дату с помощью date.today()
- Текущая дата и время Python:now() today()
- Как форматировать вывод даты и времени с помощью Strftime()
- Как использовать объекты Timedelta
Как использовать класс Date &DateTime
Шаг 1 ) Прежде чем запускать код для формата даты и времени в Python, важно импортировать модули даты и времени Python, как показано на снимке экрана ниже.
Эти операторы импорта являются предопределенными элементами функциональности в библиотеке Python, которые позволяют вам манипулировать датами и временем без написания кода.
Рассмотрите следующие моменты перед выполнением кода формата даты и времени Python
from datetime import date
Эта строка указывает интерпретатору Python импортировать класс даты из модуля datetime в Python. Мы не пишем код для этой функции даты, увы, просто импортируем ее для нашего использования
Шаг 2 ) Затем мы создаем экземпляр объекта даты.
Шаг 3 ) Далее мы печатаем дату и запускаем код.
Вывод соответствует ожиданиям.
Вывести дату с помощью date.today()
date.today
функция имеет несколько связанных с ней свойств. Мы можем печатать отдельные дни/месяцы/годы и многое другое
Давайте посмотрим на пример
Сегодняшний день недели
Функция date.today() также дает вам номер дня недели. Вот таблица будних дней, которая начинается с понедельника как 0 и воскресенья как 6
Номер дня недели полезен для массивов, индекс которых зависит от дня недели.
Текущая дата и время Python:now() today()
Шаг 1) Как и объекты даты, мы также можем использовать "DATETIME OBJECTS". в Питоне. Объекты даты и времени Python предоставляют дату вместе со временем в часах, минутах, секундах и миллисекундах.
Когда мы выполняем код для datetime, он выдает текущую дату и время.
Шаг 2) С помощью «DATETIME OBJECT» вы также можете вызвать класс времени.
Предположим, мы хотим напечатать только текущее время без даты.
t = datetime.time(datetime.now())
- Мы импортировали класс времени. Мы будем присваивать ему текущее значение времени, используя datetime.now()
- Мы присваиваем значение текущего времени переменной t.
И это даст мне как раз время. Итак, давайте запустим эту программу.
Итак, вы можете видеть, что здесь у меня есть дата и время. А потом следующая строчка, у меня как раз время само по себе
Шаг 3) Мы применим наш индексатор дня недели к массиву списка наших дней недели, чтобы узнать, какой сегодня день
- Оператору дней недели (wd) присваивается число от (0 до 6) в зависимости от текущего дня недели. Здесь мы объявили массив списка для дней (Пн, Вт, Ср... Вс).
- Используйте это значение индекса, чтобы узнать, какой сейчас день. В нашем случае это № 2, и он представляет среду, поэтому в выводе будет напечатано «Который является средой».
Вот полный код для получения текущей даты и времени с помощью datetime now
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()
На данный момент мы узнали, как использовать дату и время и объект даты в Python. Мы сделаем еще один шаг и узнаем, как использовать функцию форматирования для форматирования времени и даты.
Шаг 1) Сначала мы увидим простой шаг, как отформатировать год. Лучше понять на примере.
- Мы использовали «функцию strftime» для форматирования.
- Эта функция использует другой код управления. чтобы дать результат.
- Каждый управляющий код соответствует различным параметрам, таким как год, месяц, день недели и дата [(%y/%Y – год), (%a/%A- день недели), (%b/%B- месяц) , (%d – день месяца)] .
- В нашем случае это ("%Y") который напоминает год, он печатает полный год с веком (например, 2018).
Шаг 2) Теперь, если вы замените («%Y») строчными буквами, т. е. («%y»), и выполните код, на выходе будет отображаться только (18), а не (2018). Столетие года не будет отображаться, как показано на снимке экрана ниже
Шаг 3) Функция Strf может объявлять дату, день, месяц и год отдельно. Также с небольшими изменениями в управляющем коде в функции strftime можно отформатировать стиль текста.
Внутри функции strftime, если вы замените (%a) заглавной буквой A, т. е. (%A), вывод будет напечатан как «Пятница», а не просто как аббревиатура «Пятница».
Шаг 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
С помощью объектов Python timedelta вы можете оценить время как для будущего, так и для прошлого. Другими словами, это временной интервал для предсказания любого особого дня, даты или времени.
Помните, что эта функция предназначена не для вывода времени или даты, а для РАСЧЕТА будущего или прошлого . Давайте посмотрим на пример дельты времени Python, чтобы лучше понять его.
Шаг 1) Чтобы запустить Timedelta Objects, вам нужно сначала объявить оператор импорта, а затем выполнить код
- Написать оператор импорта для timedelta
- Теперь напишите код для вывода объекта из разницы во времени, как показано на снимке экрана.
- Запустите код. Временная дельта представляет промежуток в 365 дней, 8 часов и 15 минут и печатает то же самое.
Сбивает с толку? Следующий шаг поможет-
Шаг 2) Давайте получим сегодняшнюю дату и время, чтобы проверить, хорошо ли работает наш оператор импорта. Когда код выполняется, он выводит сегодняшнюю дату, что означает, что наш оператор импорта работает правильно
Шаг 3) Мы увидим, как мы можем получить дату через год с помощью дельта-объектов. Когда мы запускаем код, он дает ожидаемый результат.
Шаг 4) Еще один пример того, как можно использовать дельту времени для расчета будущей даты по текущей дате и времени
Шаг 5) Рассмотрим более сложный пример. Я хотел бы определить, сколько дней после Нового года. Вот как мы будем действовать
- Используя today=date.today(), мы получим сегодняшнюю дату
- Мы знаем, что Новый год всегда приходится на 1 января, но год может быть другим. Используя nyd=date(today.year,1,1), мы сохраняем новый год в переменной nyd
- if nyd <сегодня:сравнивает, больше ли текущая дата, чем новый год. Если да, то он входит в цикл 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
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)
Обзор
Для управления датами и временем как простыми, так и сложными способами модуль datetime предоставляет различные классы или категории, такие как
- дата — манипулировать только датой (месяц, день, год)
- время – время, не зависящее от дня недели (час, минута, секунда, микросекунда).
- datetime — сочетание времени и даты (месяц, день, год, час, секунда, микросекунда).
- timedelta — продолжительность времени, используемая для манипулирования датами.
- tzinfo – абстрактный класс для работы с часовыми поясами.
Использование объектов даты и времени
- Импорт объектов даты и времени перед выполнением кода является обязательным
- Использование функции date.today для печати отдельной даты/месяца/года, а также для индексации дня.
- Использование объекта date.time для получения времени в часах, минутах, секундах и миллисекундах
Формирование тайм-аута с помощью «функции времени str f»
- Используйте «функция времени str f», чтобы изменить формат года.
- Печать дня, числа, месяца и года отдельно,
- Время звонка для любого формата:12 часов или 24 часа.
Объекты Timedelta
- С помощью объектов timedelta можно оценивать время как в будущем, так и в прошлом.
- Рассчитать общее количество дней, оставшихся до особого дня (дня рождения), исходя из текущего времени.
- Рассчитать общее количество дней, прошедших для особого дня (дня рождения), исходя из текущего времени
Python
- Дата и время Python
- Как получить текущую дату и время в Python?
- Python Получить текущее время
- Модуль времени Python
- Сон питона ()
- Оператор Python Print():как печатать с примерами
- Количество строк Python() с ПРИМЕРАМИ
- Python String format() Объясните с ПРИМЕРАМИ
- Метод Python String find() с примерами
- Лямбда-функции Python с ПРИМЕРАМИ