{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Модуль datetime" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import datetime" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Модуль datetime включает в себя несколько разных классов, каждый из которых обладает собственными методами и свойствами, а также служит для определенных целей." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Класс datetime.date(year, month, day) - стандартная дата. Атрибуты: year, month, day.\n", "Основные функции этого класса представлены ниже" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1999-12-01\n", "1999\n", "12\n", "1\n", "2020-04-12\n" ] } ], "source": [ "mbd = datetime.date(1999, 12, 1)\n", "print(mbd)\n", "print(mbd.year)\n", "print(mbd.month)\n", "print(mbd.day)\n", "today = datetime.date.today()\n", "print(today)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Класс datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None) - стандартное время, не зависит от даты." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "16\n", "3\n", "49\n", "3532\n", "16:03:49.003532\n", "\n" ] } ], "source": [ "tm = datetime.time(16, 3, 49, 3532)\n", "print(tm.hour)\n", "print(tm.minute)\n", "print(tm.second)\n", "print(tm.microsecond)\n", "print(tm)\n", "print(type(tm))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Класс datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None) - комбинация даты и времени." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2017-07-18 04:52:33.051204\n", "2020-04-12 13:46:24.775622\n", "2020-04-12 13:46:24.775622\n" ] } ], "source": [ "c = datetime.datetime(2017, 7, 18, 4, 52, 33, 51204)\n", "print(c)\n", "\n", "print(datetime.datetime.today())#разницы между функциями нет\n", "print(datetime.datetime.now())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Чтобы в Python преобразовать дату и время в строку нужного формата, следует воспользоваться методом strftime, указав ему в качестве аргумента параметры форматирования." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "13:48:42\n", "2015-06-15 12:48:15\n" ] } ], "source": [ "print(datetime.datetime.today().strftime(\"%H:%M:%S\"))\n", "print(datetime.datetime(2015, 6, 15, 12, 48, 15).strftime(\"%Y-%m-%d %H:%M:%S\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Полная список типов форматов: \n", "Формат - Значение \n", "%a - название дня недели в сокращенном виде \n", "%A - название дня недели в полном виде \n", "%w - номер дня недели в виде целого числа \n", "%d - номер дня месяца в виде целого числа \n", "%b - название месяца в сокращенном виде \n", "%B - название месяца в полном виде \n", "%m - номер месяца в числовом представлении \n", "%y - номер года без столетия \n", "%Y - номер года в полном представлении \n", "%H - количество часов в 24-часовом формате \n", "%I - количество часов в 12-часовом формате \n", "%p - до полудня или после полудня в 12-часовом формате \n", "%M - количество минут в виде целого числа \n", "%S - количество секунд в виде целого числа \n", "%f - количество микросекунд в виде целого числа \n", "%z - часовой пояс в формате UTC \n", "%Z - название часового пояса \n", "%j - номер дня в году \n", "%U - номер недели в году, если считать с воскресенья \n", "%w - номер недели в году, если считать с понедельника \n", "%c - местное представление даты и времени \n", "%x - местное представление даты \n", "%X - местное представление времени \n", "%% - символ процента " ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2015\n", "3\n", "27\n", "8\n", "12\n", "24\n", "34574\n" ] } ], "source": [ "a = datetime.datetime(2015, 3, 27, 8, 12, 24, 34574)\n", "print(a.year)\n", "print(a.month)\n", "print(a.day)\n", "print(a.hour)\n", "print(a.minute)\n", "print(a.second)\n", "print(a.microsecond)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Так же можно сформировать новый объект типа datetime с помощью двух разных объектов, типов datetime.date и datetime.time " ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2015-03-19 02:10:43\n" ] } ], "source": [ "a = datetime.date(2015, 3, 19)\n", "b = datetime.time(2, 10, 43)\n", "c = datetime.datetime.combine(a, b)\n", "print(c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Операции с классом datetime: \n", "Операция\tЗначение \n", "a + b\tсуммирует значения дат a и b \n", "a – b\tнаходит разницу между датами a и b \n", "a * i\tумножает численное представление свойств даты a на некую константу i \n", "a // i\tделит численное представление свойств даты a на некую константу i, остаток отбрасывается \n", "+a\tвозвращает объект timedelta с полностью идентичным значением a \n", "–a\tвозвращает объект timedelta с полностью противоположным значением a \n", "a > b\tвозвращает true, если a больше b \n", "a < b\tвозвращает true, если a меньше b \n", "abs(a)\tвозвращает объект timedelta с положительным значением всех свойств a \n", "str(a)\tвозвращает строковое представление объекта a в формате, заданном по умолчанию \n", "repr(a)\tвозвращает строковое представление объекта a в формате с отрицательными значениями " ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1849\n", "50947\n", "418861\n" ] } ], "source": [ "a = datetime.datetime.now()\n", "b = datetime.datetime(2015, 3, 21)\n", "c = a - b\n", "print(c.days)\n", "print(c.seconds)\n", "print(c.microseconds)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Класс timedelta предназначен для удобного выполнения различных манипуляций над датами и временем." ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5 days, 21:02:37\n", "2020-04-12 14:17:35.151711\n", "2020-04-12 16:22:52.151711\n", "2020-04-11 14:17:35.151711\n" ] } ], "source": [ "a = datetime.timedelta(days=5, hours=21, minutes=2, seconds=37)\n", "print(a)\n", "\n", "a = datetime.datetime.now()\n", "b = datetime.timedelta(hours=2, minutes=5, seconds=17)\n", "print(a)\n", "print(a + b)\n", "c = datetime.timedelta(days=-1)\n", "print(a + c)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }