сколько дней в месяце python

Datetime Python

Введение

Работа программиста со временем и датой зачастую связана со многими сложностями. Дело в том, что существует множество форматов представления таких данных. Они зависят от локализации (местоположения), предпочтения тех, кто генерирует эти данные и много-много ещё от чего. В итоге, выполняя простейшие для повседневной жизни операции, программист может столкнуться с целым набором сложностей. К счастью, в языке Python есть встроенный модуль под названием datetime. Этот модуль призван максимально упростить данный класс задач. Давайте знакомиться!

Применение

Модуль datetime применяется в Пайтоне для операций с датами и временем и стремится сделать это оптимальным способом.
Этот модуль включает в себя различные классы, методы которых позволяют:
Узнать сколько сейчас времени и какая дата.
Выполнить манипуляции с датами, такие, например, как вычисление промежутка времени.
Выполнить манипуляции со временем, такие, например, как сравнение двух моментов времени.
Менять формат представления времени и даты.
Номер года, который допускает модуль, лежат внутри интервала от 1 до 9999
Для начала использования данного модуля Вам необходимо импортировать его в Ваш код:

Отличие datetime от time

В стандартной библиотеке Питона есть ещё один модуль: time. Он тоже предназначен для работы со временем. В чём их отличие? Разница в том, что модуль time главным образом предназначен для работы с метками времени Unix (выражается в виде числа с плавающей запятой, считающегося секундами с эпохи Unix). datetime модуль может поддерживать многие из тех же операций, но обеспечивает более объектно-ориентированный набор типов, а также имеет некоторую ограниченную поддержку часовых поясов.

Классы библиотеки

Как мы уже упоминали, библиотека datetime состоит из нескольких классов, которые перечислены в следующей таблице:
Метод Описание
date позволяет манипулировать датами независимо от времени (месяц, день, год)
time позволяет управлять временем независимо от даты (час, минута, секунда, микросекунда)
datetime позволяет нам управлять временем и датами вместе (месяц, день, год, час, секунда, микросекунда)
timedelta продолжительность времени, используемого для управления датами и измерения
tzinfo абстрактный класс для работы с часовыми поясами
timezone абстрактный базовый класс как фиксированное смещение от UTC

datetime

В datetime модуле есть класс с именем datetime, который может содержать информацию как из объектов даты, так и из объектов времени.

Операции

Пользуясь классом datetime, можно легко находить разницу между двумя разными датами. Следующим пример демонстрирует создание двух объектов:

tzinfo и timezone

Классы tzinfo и timezone применяются для работы с информацией, которая содержит сведения о часовых поясах. Создать объект, принадлежащий типу tzinfo невозможно, поскольку этот класс является абстрактным. Однако можно воспользоваться наследованием, создав собственный класс на основе tzinfo. При этом следует помнить, что для работы с такими объектами придется реализовать несколько абстрактных методов, к числу которых относятся utcoffset (смещение по местному времени с UTC), dst (настройка перехода на летнее время), а также функция tzname (имя часового пояса в виде строки).

Источник

Numpy DateTime: Как работать с датами и временем в Python?

Полное учебное пособие np.dateTime64. Все, что вам нужно знать, чтобы начать …

В этой статье мы узнаем о чем-то, что буквально везде. Какой бы угол вы поворачиваетесь, какая бы улица вы бежали, вы не можете уйти от него. Это как повсеместно, как физическое пространство вокруг нас. Да сегодня мы говорим о … время. Более конкретно, мы говорим о Функции Numpy, которые представляют даты и времена Отказ

Упражнение : Создайте объекты Numpy DateTime от вашего дня рождения! Теперь рассчитайте количество дней, которые прошли с тех пор.

Когда я впервые услышал о Numpy’s datetime Библиотека, я не думал, что это было большое дело. Почему нам нужны специальные функции, чтобы иметь дело с датами? Они довольно просты, не можем просто использовать строки, такие как ‘2019/01/01’ И сделать с этим?

Ну, молодая версия меня, оказывается, они довольно сложны, и мы не можем «просто использовать строки» …

Если вы не уверены, попробуйте ответить на любой из следующих вопросов, используя «просто строки»:

Очевидно, нам нужны даты и времена, чтобы иметь свои собственные функции. И не волнуйтесь, мы ответим на все эти вопросы к концу статьи.

Вы хотите стать Numpy Master? Проверьте нашу интерактивную книгу головоломки Coffe Break Numpy И повысить свои навыки науки о данных! (Ссылка Amazon открывается на новой вкладке.)

Нежное введение

Хотя мы не можем «просто использовать Строки «Представлять даты и времена, мы будем использовать строки в качестве ввода к основной функции, с которой мы будем работать: np.dateTime64 () Отказ

Примечание : то 64 означает, что цифры 64 бита.

Numpy использует сокращения следующих (здравых смыслов) для единиц времени, обратите внимание на капитализацию, где это происходит:

ГодыY
МесяцыM
НеделиW
ДниD
Часыh
Минутm
Секундыs
МиллисекундыРС
Microconds (поскольку μs (греческая буква «MU») так, как мы передаем ее, и «U» выглядит ближе всего к этому на английском языке).нас

Формат ввода – ISO 8601

Разные страны пишут своими даты по-разному. В Европе 06/10/18 – 6 октября, а в Америке 10 июня. Лично, это может быть раздражает, но в бизнесе, это критично (представьте, что ваша программа работает до 6 октября, когда вы хотели, чтобы она остановилась 10 июня)! Итак, нам нужен стандартизированный вход для наших функций. К счастью, глобальный стандарт уже существует ISO 8601 Отказ

Это легко вспомнить, как даты и времена идут налево, направо от большого до маленького. Это будет важно позже, когда мы сделаем арифметику с datetime объекты.

Чтобы ввести это на Numpy, мы можем либо

Я предпочитаю первый метод, так как легче читать. Но обратите внимание, что если вы распечатаете любой np.dateTime64 Функции, Numpy всегда вставляют T Отказ

Теперь пришло время для наших первых примеров (я пытался выбрать даты, которые легко читать для обучения).

Рекантралирование

Учитывая конкретное значение dateTime, вы можете изменить его в определенный момент времени, введя его в качестве второго параметра.

Например, скажем, у нас есть определенный день, но только хочу месяц:

Обратите внимание, что часть DD для HOURE_FROM_MONH и HOURE_FROM_DAY разные. Первый имеет 01 и последний 22. Это потому, что numpy возвращается к значениям по умолчанию, если никто не указан. Это логически, 01 для M и D и 0 для переменных времени.

Арифметика DateTime

Теперь у нас есть абсолютные основы вниз, так что пришло время выдержать его на выемку. Можете ли вы ответить на следующий вопрос?

Что наступает дальше после 12 вечера 12 декабря 1999 года?

В зависимости от единицы времени вы рассчитываете, это может быть что-нибудь:

Как мы уже видели, каждый np.dateTime64 Объект имеет единицу времени, связанный с ним. Поэтому, если мы ‘+ 5’ на наш объект «день», мы пойдем вперед 5 дней. И если мы ‘- 5’ с нашего месяца объекта, мы пойдем назад 5 месяцев:

Но что, если мы хотим посмотреть на Рождественский день каждый год за последние 50 лет? Мы не можем начать с 2018-12-25 и «- 1», потому что это прилагает временную единицу «D», и поэтому дает нам 2018-12-24.

Numpy решил эту проблему, введя другую функцию с помощью прохладной фамилии: np.timedelta64 Отказ

np.timedelta64.

Любая арифметика, которая сложнее, чем добавление или вычитание целые числа включает в себя np.timedelta64 Отказ Уравнение либо вернет np.timedelta64 объект или вам нужно будет использовать один, чтобы получить результат.

Если вы все поняли до этого момента, вы легко поймете это. Это лучше всего объяснено в примерах.

Количество дней с 1 января 2013 года и 1 января 2012 года 366, так как это был скачок года.

Каждый np.timedelta64 () Объект принимает одно целое и однократное устройство. Таким образом, чтобы добавить через 4 месяца и 3 дня, у вас есть два варианта.

Первый – использовать два экземпляра np.timedelta64 :

Второе – преобразовать отдельный np.timedelta64 объекты в один с использованием разделения (или модуло):

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

Большинство людей согласились бы, что через месяц после 31 января 28 февраля. Но что через месяц после 28 февраля? 28 марта или 31 марта? Так что numpy бросает ошибку, если вы попытаетесь изменить месяц/год np.dateTime64 объект со временным устройством ‘D’ или меньше.

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

Мы теперь оснащены, чтобы построить список любых дат и времена нашего сердца! Итак, давайте построим один, содержащий все рождественские дни за последние 50 лет. Мы начнем с последних декабря. 2018-12 и повторяйте через него 50 раз назад. Для первой итерации мы вычвеем один год (чтобы получить 2017 год), для второго мы вычитаем 2 года (чтобы получить 2016 год) и так далее. Наконец, в каждой итерации мы добавляем 24 дня (поскольку день по умолчанию 01). Мы сделаем все это, используя один из наиболее любимых аспектов Python: понимание списка!

Теперь мы знаем ответы на вопросы 1 и 2, которые я спросил в начале.

Но как насчет вопроса 3? Это было о рабочих днях, поэтому давайте узнаем о них сейчас.

Сколько рабочих дней между двумя днями?

Мы можем создать любой список данных DateTimes, используя инструменты выше. Но есть несколько вещей, которые мы можем использовать, чтобы упростить нашу жизнь.

Предприятия обычно заботятся только о том, что происходит в своих дни операции. Поэтому было бы неплохо иметь набор функций для решения этого. Было бы много ненужных точек данных, если бы нам пришлось включить субботу и воскресенье в анализе данных на акции.

К счастью, Numpy обрабатывает это, используя концепцию рабочих дней с np.busday () функция.

Но во-первых, нам нужно покрыть всеобъемлющую концепцию.

Недели

Центральная к этим функциям является ключевым словом «Weekmass». Эта переменная определяет, какие дни считаются рабочими днями.

Следующие еженедельники все установили рабочие дни в понедельник, вторник, среду, четверг и пятницу (поведение по умолчанию):

Я буду использовать эти взаимозаменяемо в примерах для учебных целей. Я рекомендую вам выбрать один стиль и придерживаться его в своем собственном коде, чтобы помочь читабельности.

Примечание: вход в np.busday Функции не строка, а скорее np.dateTime64 () объект.

np.is_busday ()

Возвращает логическое значение: Правда Если день это рабочий день, Ложь Если это не так.

Примечание. Вы можете использовать эту функциональность для создания списков любого определенного дня. Просто установите Weekmask в интересные дни и используйте np.is_busday (), чтобы выбрать соответствующие.

np.busday_count ()

Возвращает количество рабочих дней между двумя датами, которые вы предоставляете.

Теперь мы можем ответить на вопрос 3:

np.busday_offset ()

Возвращает действующий рабочий день в соответствии с правилом ролика и количество дней для компенсации.

Мы будем использовать это, чтобы найти ближайший рабочий день для любой даты, которую мы передаем к этой функции.

Например, мы хотим найти цену фондового рынка 18 мая 2019 года. Это невозможно, так как это в субботу, а фондовый рынок закрыт. Мы будем использовать эту функцию, чтобы получить np.dateTime64 объект ближе всего к нему это рабочий день.

Для простоты мы проигнорируем более сложные случаи использования. Пожалуйста, обратитесь к Документация Если вы хотите более подробные объяснения.

np.dateTime64 с np.arange.

Последнее, что мы посмотрим на создание даты, даже проще сочетают его с функцией NP.Arge.

Помните, что аргументы для NP.Arge почти идентичны встроенному Диапазон () функция. Но есть добавленная ‘dtype’ Аргумент ключевых слов, чья по умолчанию нет. Как ассортимент, остановка в NP.Arange является эксклюзивным и поэтому не включена в расчет.

Хотите понять функцию Numpy Arange () один раз и для всех? Читайте моего руководства в блоге: Окончательное руководство по NP.Arge () с видео.

При работе с DateTimes вы должны включить дату начала и остановки и установить DTYPE.

И это все, что вам нужно знать о DateTimes в Numpy! Феве, это было много.

Чтобы проложить его, давайте визуализируем фондовый рынок США за последнее десятилетие, используя разные временные интервалы.

Как визуализировать фондовый рынок с DateTime Numpy?

Для следующего примера я скачал последние 10 лет данных фондового рынка для S & P 500 Отказ Вы можете свободно загружать его здесь Отказ

Я проделал предварительную обработку от этой статьи и завершился двумя списками. Первый, Значения, Содержит значение индекса S & P 500 в закрытии каждый день с 2009-10-23 до 2019-10-22. Второй, datetimes содержит np.dateTime64 объекты на каждый день.

Я зацикливаю эти списки вместе, чтобы создать словарь, где каждый ключ является датой и каждым значением значение S & P 500. Мы будем использовать это для создания подмножеств наших данных позже, только выбрав ключи, которые мы хотим.

Участок 1 – все данные

Во всем наборе данных наблюдается огромная тенденция. Но график довольно шумный. Можно увидеть другие тенденции, но потому что есть так много очков, это не особенно приятно смотреть. Что делать, если мы повторно выбирали, чтобы увидеть, как рынок исполнился год на год? Для этого мы посмотрим на 1 января каждый год.

Участок 2 – 1 янв

Примечание: 1 ян Ян – это праздник каждый год, и поэтому фондовый рынок не открыт. Итак, мы будем использовать np.busday_offset () Чтобы выбрать ближайшую действительную дату для нас.

Во-первых, создайте список каждый год, используя NP.Arge ().

Так как значения datetimes У единицы времени «D» мы должны преобразовать даты в All_years к этому тоже. По умолчанию по умолчанию каждый элемент к yyyy-01-01.

Теперь мы замышляем.

Это гораздо более гладкий сюжет, и очень легко понять, что годы имели положительный и отрицательный рост. Такова сила ретора!

Но этот граф слишком общий? Чтобы получить хорошую среднюю позицию, давайте посмотрим на стоимость S & P 500 в начале каждые квартал за последние 10 лет. Процесс практически идентичен тому, которое мы использовали выше.

Участок 3 – Каждый квартал

Во-первых, создайте список каждого квартала в виде YYYY-MM. Помните четверти 3 месяца!

Переосмысление наших объектов DateTime для «D» с использованием понимания списка.

Теперь мы замышляем

Это дает нам прекрасный обзор тенденций фондового рынка. Это не слишком шумно (как сюжет 1) или чрезмерно упрощенный (например, сюжет 2). Внутрилетние провалы ясны, пока график все еще легко понятен.

И именно это! Все, что вам нужно знать, чтобы использовать NP.DATETETIME64 и связанные с ними функции, а также некоторые реальные примеры мира.

Если у вас есть какие-либо вопросы или предложения, пожалуйста, используйте окно комментариев ниже. Мы любим услышать отзывы и предложения!

Атрибуция

Эта статья способна предоставлена пользователем Finxter Адам Мерфи (данные ученый):

Я являюсь самоучками программистом с первой степенью класса в математике из Университета Дарема и кодировал с июня 2019 года.

Я хорошо разбираюсь в основах SUB STRACKING и DATA SCAIL и может получить широкий спектр информации из Web очень быстро.

Недавно я счел информацию обо всех часах, которые Breitling и Rolex продают всего за 48 часов и уверены в себе, я могу доставить наборы данных подобного качества для вас, независимо от ваших потребностей.

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

Куда пойти отсюда?

Тщательное понимание Numpy Basics является важной частью образования каких-либо данных ученых. Numpy находится в основе многих передовых машин обучения и научных библиотек данных, таких как Pandas, Tensorflow и Scikit-Suart.

Если вы боретесь с Numpy Library – не бойся нет! Станьте Numpy Professional в кратчайшие сроки с нашим новым учебником кодирования «Coffe Break Numpy». Это не только тщательное введение в Numpy Library, которая повысит вашу ценность на рынке. Также весело пройти большую коллекцию кода головоломки в книге.

Источник

Дата и время в Python – подробно о модуле datetime

Python предоставляет модуль datetime для работы с реальными датами и временем. Приложения функционируют в режиме настоящего времени, и Python позволяет нам запланировать запуск нашего скрипта Python в определенное время. В Python дата не является типом данных, но мы можем работать с объектами даты, импортировав модуль с именем datetime, time и calendar.

В этом разделе руководства мы обсудим, как работать с объектами даты и времени в Python.

Классы datetime подразделяются на шесть основных:

В Python время отсчитывается с 12 часов утра 1 января 1970 года. Функция time() модуля time возвращает общее количество тиков, потраченных с 12:00 1 января 1970 года. Tick можно рассматривать как наименьшую единицу измерения времени.

Рассмотрим следующий пример.

Как узнать текущее время?

Функции localtime() модуля времени используются для получения текущего кортежа времени. Рассмотрим следующий пример.

Кортеж времени

Время рассматривается как набор из 9 чисел. Давайте посмотрим на элементы временного кортежа.

Форматирование времени

Время можно отформатировать с помощью функции asctime() модуля времени. Он возвращает отформатированное время для переданного кортежа времени.

Время сна Python

Метод sleep() модуля time используется для остановки выполнения скрипта на заданный промежуток времени. Вывод будет задержан на количество секунд, указанное в качестве числа с плавающей запятой.

Рассмотрим следующий пример:

Модуль datetime

Модуль datetime позволяет нам создавать настраиваемые объекты даты, выполнять различные операции с датами, такие как сравнение и т. д.

Чтобы работать с датами как с объектами даты, мы должны импортировать модуль datetime в исходный код Python.

Рассмотрим следующий пример, чтобы получить представление об объекте datetime для текущего времени.

Создание объектов даты

Мы можем создавать объекты даты, минуя желаемую дату в конструкторе datetime, для которой должны быть созданы объекты даты.

Мы также можем указать время вместе с датой для создания объекта datetime. Рассмотрим следующий пример.

В приведенном выше коде мы последовательно передали в функцию datetime() атрибуты года, месяца, дня, часа, минуты и миллисекунды.

Сравнение двух дат

Мы можем сравнить две даты, используя такие операторы сравнения, как>,> =,

Источник

Как управлять датой и временем в Python?

В этой статье вы научитесь управлять датой и временем в Python с помощью примеров.

В Python есть модуль datetime для работы с датой и временем. Прежде чем копать глубже, давайте создадим несколько простых программ, связанных с датой и временем.

Как получить текущую дату и время в Python?

Простая программа с помощью которой можно получить текущую дату и время в Python:

Когда вы запустите программу, результат будет примерно таким:

Здесь мы импортировали модуль datetime, используя оператор import datetime.

Один из классов, определенных в модуле datetime, ‒ это класс datetime. Затем мы использовали метод now() для создания объекта datetime, содержащего текущие локальные дату и время.

Как получить текущую дату?

Когда вы запустите программу, результат будет примерно таким:

В этой программе мы использовали метод today(), определенный в классе даты, чтобы получить объект даты, содержащий текущую локальную дату.

Что внутри datetime?

Мы можем использовать функцию dir(), чтобы получить список, содержащий все атрибуты модуля.

Когда вы запустите программу, вывод будет:

Обычно используемые классы в модуле datetime:

Класс datetime.date

Вы можете создавать экземпляры объектов даты из класса даты. Объект представляет собой дату (год, месяц и день).

Объект Date для представления даты

Когда вы запустите программу, вывод будет:

В приведенном выше примере date() является конструктором класса даты. Конструктор принимает три аргумента: год, месяц и день.

Переменная a ‒ объект даты.

Мы можем импортировать только класс даты из модуля datetime. Вот как:

Пример: Получить текущую дату

Вы можете создать объект даты, содержащий текущую дату, используя метод класса с именем today(). Вот как:

Пример: Получить дату из отметки времени

Мы также можем создавать объекты даты из отметки времени. Отметка времени Unix ‒ это количество секунд между определенной датой и 1 января 1970 года по всемирному координированному времени. Вы можете преобразовать метку времени в дату, используя метод fromtimestamp().

Когда вы запустите программу, вывод будет:

Пример: Вывести сегодняшний год, месяц и день

Мы можем легко получить год, месяц, день, день недели и т.д. из объекта даты. Вот как:

datetime.time

Объект времени, созданный из класса времени, представляет местное время.

Объект времени для представления времени

Когда вы запустите программу, вывод будет:

Вывод часа, минуты, секунды и микросекунды

Когда вы запустите пример, результат будет:

Обратите внимание, что мы не передали аргумент микросекунды. Следовательно, печатается его значение по умолчанию 0.

datetime.datetime

В модуле datetime есть класс с именем dateclass, который может содержать информацию как из объектов даты, так и времени.

Объект datetime

Когда вы запустите программу, вывод будет:

Первые три аргумента год, месяц и день в конструкторе datetime() являются обязательными.

Напечатать год, месяц, час, минуту и отметку времени

Когда вы запустите программу, вывод будет:

datetime.timedelta

Объект timedelta представляет разницу между двумя датами или временем.

Разница между двумя датами и временем

Когда вы запустите программу, вывод будет:

Разница между двумя объектами timedelta

Когда вы запустите программу, вывод будет:

Печать отрицательного объекта timedelta

Когда вы запустите программу, вывод будет:

Продолжительность времени в секундах

Вы можете получить общее количество секунд в объекте timedelta, используя метод total_seconds().

Когда вы запустите программу, вывод будет:

Вы также можете найти сумму двух дат и времени, используя оператор +. Кроме того, вы можете умножать и делить объект timedelta на целые числа и числа с плавающей запятой.

Дата и время в формате Python

Дата и время могут быть разными в разных местах, организациях и т.д. в США чаще используется мм/дд/гггг, а в Великобритании ‒ дд/мм/гггг.

Для этого в Python есть методы strftime() и strptime().

Метод strftime() ‒ объект datetime для строки

Метод определяется в классах date, datetime и time. Метод создает форматированную строку из заданного объекта даты, даты, времени или времени.

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

Когда вы запустите программу, результат будет примерно таким:

Здесь % Y,% m,% d,% H и т.д. являются кодами формата. Метод strftime() принимает один или несколько кодов формата и возвращает на его основе отформатированную строку.

Python strptime() ‒ строка для даты и времени

Метод создает объект datetime из заданной строки (представляющей дату и время).

strptime()

Когда вы запустите программу, вывод будет:

Метод принимает два аргумента:

Кстати, коды формата% d,% B и% Y используются для дня, месяца (полное имя) и года соответственно.

Обработка часового пояса

Предположим, вы работаете над проектом и вам нужно отображать дату и время в соответствии с их часовым поясом. Вместо того, чтобы пытаться самостоятельно обрабатывать часовой пояс, мы предлагаем вам использовать сторонний модуль pytZ.

Когда вы запустите программу, результат будет примерно таким:

Здесь datetime_NY и datetime_London ‒ это объекты, содержащие текущую дату и время соответствующего часового пояса.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *