Python ДатаВремя, ВремяDelta, Strftime(Формат) с примерами

⚡ Умное резюме

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

  • 🔘 Пять классов: Модуль datetime объединяет классы date, time, datetime, timedelta и tzinfo для работы с датами и временем.
  • ☑️ Текущие значения: Методы datetime.now() и date.today() возвращают текущую дату и время, включая номер дня недели.
  • Форматирование: Функция strftime() преобразует дату и время в читаемый текст с помощью управляющих кодов, таких как %Y, %A и %H.
  • 🧪 Таймдельта: Объект timedelta измеряет продолжительность и прогнозирует будущие или прошлые даты посредством сложения и вычитания.tracния.
  • 🇧🇷 Директивы: Одни и те же управляющие коды заставляют функции strftime() выводить данные и strptime() считывать строку обратно в объект datetime.
  • 🤖 Рабочие процессы ИИ: Конвейеры машинного обучения извлекают из данных временных рядов такие характеристики, как день недели и час.

Python DateTime

In Python, дата, время и дата-время Классы предоставляют ряд функций для работы с датами, временем и временными интервалами. Дата и время в Python Это объекты, поэтому при работе с ними вы фактически работаете с объектами, а не со строками или метками времени. При работе с датами или временем необходимо импортировать модуль datetime.

Классы datetime в Python Они подразделяются на 5 основных классов.

  • date – манипулировать только датой (месяц, день, год)
  • время – время, независимое от дня (час, минута, секунда, микросекунда)
  • datetime – комбинация времени и даты (месяц, день, год, час, секунда, микросекунда)
  • timedelta — промежуток времени, используемый для манипулирования датами.
  • tzinfo — An abstracкласс t для работы с часовыми поясами

Как использовать класс Date и DateTime

Шаг 1) Прежде чем запускать код для формата datetime в Python, важно, чтобы вы импортировали Python модули даты и времени, как показано на скриншоте ниже.

Использовать класс Date и DateTime

Эти операторы импорта представляют собой заранее определенные части функциональности в Python Библиотека, позволяющая манипулировать датами и временем без написания какого-либо кода.

Перед выполнением рассмотрите следующие моменты: Python код формата даты и времени

from datetime import date

Эта строка сообщает Python интерпретатор для импорта класса даты из модуля datetime в PythonМы не пишем код для реализации этой функциональности работы с датами, а просто импортируем её для собственного использования.

Распечатайте дату, используя date.today()

Функция date.today() имеет несколько связанных с ней свойств. Мы можем вывести конкретный день/месяц/год и многое другое.

Давайте посмотрим пример

Распечатайте дату, используя date.today()

Сегодняшний номер дня недели

Функция date.today() также возвращает номер дня недели. Вот таблица дней недели, которая начинается с Monday как 0, а воскресенье как 6.

день Номер дня недели
Monday 0
вторник 1
среда 2
четверг 3
пятница 4
Суббота 5
Воскресенье 6

Номер дня недели полезен для массивов, индекс которых зависит от дня недели.

Распечатайте дату, используя date.today()

Шаг 2) Далее мы создаем экземпляр объекта даты.

Использовать класс Date и DateTime

Шаг 3) Далее печатаем дату и запускаем код.

Использовать класс Date и DateTime

Результат соответствует ожиданиям.

Python Текущая дата и время: now() сегодня()

Шаг 1) Как и объекты даты, мы также можем использовать «ОБЪЕКТЫ ДАТА-ВРЕМЯ» in Python. Python Объекты даты и времени предоставляют дату вместе со временем в часы, минуты, секунды и миллисекунды.

Python Текущая дата и время

Когда мы выполняем код для datetime, он выдает выходные данные с текущей датой и временем.

Шаг 2) С помощью объекта типа «DATETIME OBJECT» можно также вызвать класс времени. Предположим, мы хотим вывести только текущее время без даты.

t = datetime.time(datetime.now())
  • Мы импортировали класс времени. Мы будем присваивать ему текущее значение времени, используя datetime.now().
  • Мы присваиваем значение текущего времени переменной t.

И это даст мне как раз время. Итак, давайте запустим эту программу.

Python Текущая дата и время

Итак, как видите, здесь я указал дату и время. А в следующей строке указано только время.

Шаг 3) Мы применим наш индексатор будних дней к списку дней недели, чтобы определить, какой сегодня день недели.

  • Оператору дней недели (wd) присваивается число от 0 до 6 в зависимости от текущего дня недели. Здесь мы объявили массив списка дней недели (понедельник, вторник, среда…воскресенье).
  • Используйте это значение индекса, чтобы узнать, какой сегодня день. В нашем случае это номер 2, и он представляет среду, поэтому в результате будет напечатано «Которая является средой».

Python Текущая дата и время

Вот полный код для получения текущей даты и времени, используя 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()

  • Мы использовали «функция strftime» для форматирования.
  • Эта функция использует разные контрольный код дать вывод.
  • Каждый управляющий код соответствует различным параметрам, таким как год, месяц, день недели и дата. [(%y/%Y – год), (%a/%A- день недели), (%b/%B- месяц), (%d – день месяца)] .
  • В нашем случае это («%Y») который напоминает год, распечатывает полный год с указанием столетия (например, 2018).

Шаг 2) Теперь, если вы замените («%Y») строчными буквами, т. е. ( «%y) и выполните код, на выходе будет отображаться только (18), а не (2018). Столетие года не будет отображаться, как показано на скриншоте ниже.

Форматирование вывода даты и времени с помощью Strftime()

Шаг 3) Функция strf позволяет задавать дату, день недели, месяц и год отдельно. Кроме того, внеся небольшие изменения в управляющий код функции strftime, можно форматировать стиль текста.

Форматирование вывода даты и времени с помощью Strftime()

Внутри функции strftime, если заменить (%a) на заглавную букву A, то есть (%A), на выходе получится «Friday» вместо простого сокращения «Fri».

Форматирование вывода даты и времени с помощью Strftime()

Шаг 4) С помощью функции «Strftime» мы также можем получить локальное системное время, дату или и то, и другое.

  1. %C- указывает местную дату и время.
  2. %x- указывает местную дату
  3. %X- указывает местное время

Форматирование вывода даты и времени с помощью Strftime()

На выходе вы можете увидеть результат, как и ожидалось.

Шаг 5) «Функция strftime» позволяет назвать время в любом формате 24 часа или 12 часов.

Форматирование вывода даты и времени с помощью Strftime()

Просто определив управляющий код, например %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, вам необходимо сначала объявить оператор импорта, а затем выполнить код.

  1. Напишите оператор импорта для timedelta
  2. Теперь напишите код для печати объекта из разницы во времени, как показано на снимке экрана.
  3. Запустите код. Timedelta представляет собой промежуток в 365 дней, 8 часов и 15 минут и выводит то же самое

Объекты Timedelta

Сбивает с толку? Следующий шаг поможет-

Шаг 2) Давайте получим сегодняшнюю дату и время, чтобы проверить, хорошо ли работает наш оператор импорта. Когда код выполняется, он печатает сегодняшнюю дату, что означает, что наш оператор импорта работает хорошо.

Объекты Timedelta

Шаг 3) Мы увидим, как можно получить дату через год с настоящего момента через объекты delta. Когда мы запускаем код, он выдает ожидаемый результат.

Объекты Timedelta

Шаг 4) Еще один пример того, как дельта времени может быть использована для расчета будущей даты из текущей даты и времени.

Объекты Timedelta

Шаг 5) Давайте рассмотрим более сложный пример. Я хотел бы определить, сколько дней прошло после Нового года. Вот как мы поступим

  • Используя Today= date.today(), мы получим сегодняшнюю дату.
  • Мы знаем, что Новый год всегда приходится на 1 января, но год может быть другим. Используя nyd= date(today.year,1,1), мы сохраняем новый год в переменной nyd.
  • Если nyd < today: проверяется, превышает ли текущая дата дату Нового года. Если да, то запускается цикл while.
  • ((today-nyd).days) показывает разницу между текущей датой и новым годом в ДНЯХ.

Объекты Timedelta

Вывод показывает, что «Новый год уже прошел 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)

Часто задаваемые вопросы (FAQ)

Используйте datetime.strptime(text, format) для преобразования строки в объект datetime. Передайте те же директивы, что и strftime(), поэтому "2018-06-29" будет читаться как "%Y-%m-%d". В качестве обратной функции к strftime(), strptime() преобразует удобочитаемый текст обратно в объект datetime, с которым можно выполнять вычисления.

Объект datetime без tzinfo является наивным; добавление часового пояса делает его осведомленным. Используйте встроенный модуль zoneinfo (Python 3.9+) или пакет pytz для локализации дат и времени, а затем преобразования между зонами, чтобы вычисления оставались корректными во всех регионах.

Чтобы получить количество секунд с начала эпохи Unix в виде числа с плавающей запятой, вызовите метод timestamp() для объекта datetime, например, datetime.now().timestamp(). Для обратного преобразования, datetime.fromtimestamp(value) восстанавливает объект datetime из метки времени Unix.

Обе функции возвращают текущую локальную дату и время, но datetime.now() принимает необязательный аргумент часового пояса, в то время как datetime.today() — нет. Для кода, учитывающего часовой пояс, предпочтительнее использовать datetime.now(tz), чтобы результат содержал правильное смещение, а не оставался некорректным.

Да. Модуль даты и времени поставляется в комплекте. PythonТаким образом, установка через pip не требуется. Импортируйте его с помощью команды «from datetime import datetime, date, time, timedelta», и классы date, time, datetime, timedelta и tzinfo станут доступны немедленно.

Вызовите метод isoformat(), чтобы получить стандартную строку ISO 8601, например, «2018-06-29T08:15:27». Для объекта даты он возвращает «YYYY-MM-DD». Метод isoformat() не требует управляющих кодов, в отличие от strftime(), который создает пользовательские макеты на основе директив.

Конвейеры машинного обучения преобразуют исходные временные метки в такие характеристики, как день недели, час, месяц и прошедшее время, используя параметры datetime и timedelta. Эти специально разработанные характеристики даты помогают моделям временных рядов и системам прогнозирования на основе искусственного интеллекта выявлять сезонные и циклические закономерности.

Да. GitHub Copilot и ИИ-ассистенты Agentic генерируют строки формата strftime(), выполняют арифметические операции timedelta и преобразуют часовые пояса из короткого комментария, а также могут объяснять непонятные директивы. Всегда запускайте предложенный код, поскольку обработка дат и смещения легко могут быть неправильно рассчитаны.

Подведем итог этой публикации следующим образом: