Python ДатаВремя, ВремяDelta, Strftime(Формат) с примерами
Классы datetime в Python подразделяются на 5 основных классов.
- date – манипулировать только датой (месяц, день, год)
- время – время, независимое от дня (час, минута, секунда, микросекунда)
- datetime – комбинация времени и даты (месяц, день, год, час, секунда, микросекунда)
- timedelta — промежуток времени, используемый для манипулирования датами.
- tzinfo — абстрактный класс для работы с часовыми поясами.
Как использовать класс Date и DateTime
Шаг 1) Прежде чем запускать код для формата datetime в Python, важно, чтобы вы импортировали Python модули даты и времени, как показано на скриншоте ниже.
Эти операторы импорта представляют собой заранее определенные части функциональности в Python библиотека, которая позволяет вам манипулировать датами и временем без написания кода.
Перед выполнением рассмотрите следующие моменты: Python код формата даты и времени
from datetime import date
Эта строка сообщает Python интерпретатор для импорта класса даты из модуля datetime в Python. Мы не пишем код для этой функции даты, а просто импортируем ее для нашего использования.
Шаг 2) Далее мы создаем экземпляр объекта даты.
Шаг 3) Далее печатаем дату и запускаем код.
Результат соответствует ожиданиям.
Распечатайте дату, используя date.today()
date.today
Функция имеет несколько свойств, связанных с ней. Мы можем напечатать отдельные дни/месяцы/годы и многое другое.
Давайте посмотрим пример
Сегодняшний номер дня недели
Функция date.today() также дает вам номер дня недели. Вот таблица дней недели, которая начинается с Monday как 0 и воскресенье как 6
день | Номер дня недели |
---|---|
Monday | 0 |
вторник | 1 |
среда | 2 |
четверг | 3 |
пятница | 4 |
Суббота | 5 |
Воскресенье | 6 |
Номер дня недели полезен для массивов, индекс которых зависит от дня недели.
Python Текущая дата и время: now() сегодня()
Шаг 1) Как и объекты даты, мы также можем использовать «ОБЪЕКТЫ ДАТА-ВРЕМЯ» in Python. Python Объекты даты и времени предоставляют дату вместе со временем в часы, минуты, секунды и миллисекунды.
Когда мы выполняем код для datetime, он выдает выходные данные с текущей датой и временем.
Шаг 2) С помощью «DATETIME OBJECT» вы также можете вызвать класс времени.
Предположим, мы хотим напечатать только текущее время без даты.
t = datetime.time(datetime.now())
- Мы импортировали класс времени. Мы будем присваивать ему текущее значение времени, используя datetime.now().
- Мы присваиваем значение текущего времени переменной t.
И это даст мне как раз время. Итак, давайте запустим эту программу.
Хорошо, вы можете видеть, что здесь у меня есть дата и время. И затем следующая строка: у меня есть время само по себе.
Шаг 3) Мы применим наш индексатор дней недели к массивуList наших дней недели, чтобы узнать, какой день сегодня.
- Оператору дней недели (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()
На данный момент мы узнали, как использовать дату и время. объект в 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 пример timedelta для лучшего понимания.
Шаг 1) Чтобы запустить объекты Timedelta, вам необходимо сначала объявить оператор импорта, а затем выполнить код.
- Напишите оператор импорта для timedelta
- Теперь напишите код для печати объекта из разницы во времени, как показано на снимке экрана.
- Запустите код. Timedelta представляет собой промежуток в 365 дней, 8 часов и 15 минут и выводит то же самое
Сбивает с толку? Следующий шаг поможет-
Шаг 2) Давайте получим сегодняшнюю дату и время, чтобы проверить, хорошо ли работает наш оператор импорта. Когда код выполняется, он печатает сегодняшнюю дату, что означает, что наш оператор импорта работает хорошо.
Шаг 3) Мы увидим, как можно получить дату через год с настоящего момента через объекты delta. Когда мы запускаем код, он выдает ожидаемый результат.
Шаг 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 предоставляет различные классы или категории, такие как
- date – манипулировать только датой (месяц, день, год)
- время – время, независимое от дня (час, минута, секунда, микросекунда)
- datetime – комбинация времени и даты (месяц, день, год, час, секунда, микросекунда)
- timedelta — промежуток времени, используемый для манипулирования датами.
- tzinfo — абстрактный класс для работы с часовыми поясами.
Использование объектов datetime
- Импорт объектов datetime перед выполнением кода является обязательным.
- Использование функции date.today для печати отдельной даты/месяца/года, а также индексации дня.
- Использование объекта date.time для получения времени в часах, минутах, секундах и миллисекундах.
Форматирование тайм-аута с помощью функции «str f time»
- Используйте функцию str f time, чтобы изменить формат года.
- Печать дня, числа, месяца и года отдельно,
- Время звонка для любого формата 12 часов или 24 часа
Объекты Timedelta
- С помощью объектов timedelta вы можете оценить время как для будущего, так и для прошлого.
- Подсчитайте общее количество дней, оставшихся до особого дня (дня рождения) с текущего времени.
- Подсчитать общее количество дней, прошедших в особый день (день рождения) с текущего времени.