HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Получение текущего времени и даты в Python</a></li>
1 <ul><li><a>Получение текущего времени и даты в Python</a></li>
2 <li><a>Получаем только дату в Python. Работа с датой</a></li>
2 <li><a>Получаем только дату в Python. Работа с датой</a></li>
3 <li><a>Что внутри datetime?</a></li>
3 <li><a>Что внутри datetime?</a></li>
4 <li><a>Класс date</a></li>
4 <li><a>Класс date</a></li>
5 <li><a>Класс time</a></li>
5 <li><a>Класс time</a></li>
6 <li><a>Класс datetime</a></li>
6 <li><a>Класс datetime</a></li>
7 <li><a>Класс timedelta</a></li>
7 <li><a>Класс timedelta</a></li>
8 <li><a>Формат</a></li>
8 <li><a>Формат</a></li>
9 <li><a>Обработка часового пояса</a></li>
9 <li><a>Обработка часового пояса</a></li>
10 </ul><p>Статья посвящена работе с модулем<em>datetime</em>, который используется в языке программирования Python для определения даты и времени. В рамках изучения модуля будут рассмотрены классы<strong>Python date, Python time и Python timedelta</strong>.</p>
10 </ul><p>Статья посвящена работе с модулем<em>datetime</em>, который используется в языке программирования Python для определения даты и времени. В рамках изучения модуля будут рассмотрены классы<strong>Python date, Python time и Python timedelta</strong>.</p>
11 <p>Сначала напишем пару простейших программ на Python.</p>
11 <p>Сначала напишем пару простейших программ на Python.</p>
12 <p>В коде выше модуль<em>datetime</em>импортирован посредством<em>import datetime</em>, а одним из классов, который определен в модуле<em>datetime</em>, является одноименный класс<em>datetime</em>. Далее используется метод now, который создает в Python объект <em>datetime</em>. Этот объект содержит локальное время и дату на текущий момент (на момент отработки кода).</p>
12 <p>В коде выше модуль<em>datetime</em>импортирован посредством<em>import datetime</em>, а одним из классов, который определен в модуле<em>datetime</em>, является одноименный класс<em>datetime</em>. Далее используется метод now, который создает в Python объект <em>datetime</em>. Этот объект содержит локальное время и дату на текущий момент (на момент отработки кода).</p>
13 <p>Выполнив этот код на Python, мы получим в выводе текущие дату и время. Это будет выглядеть приблизительно следующим образом:</p>
13 <p>Выполнив этот код на Python, мы получим в выводе текущие дату и время. Это будет выглядеть приблизительно следующим образом:</p>
14 <p>2021-01-26 13:13:56.780540</p>
14 <p>2021-01-26 13:13:56.780540</p>
15 <h2>Получаем только дату в Python. Работа с датой</h2>
15 <h2>Получаем только дату в Python. Работа с датой</h2>
16 <p>Внеся небольшие изменения в код на Python, можно получить только дату (<em>date</em>).</p>
16 <p>Внеся небольшие изменения в код на Python, можно получить только дату (<em>date</em>).</p>
17 <p>Теперь для получения объекта<em>date</em>был задействован метод <em>today</em>, который определен в классе <em>date</em>. Это позволило получить объект <em>date</em>и отобразить локальную дату на момент запуска программы.</p>
17 <p>Теперь для получения объекта<em>date</em>был задействован метод <em>today</em>, который определен в классе <em>date</em>. Это позволило получить объект <em>date</em>и отобразить локальную дату на момент запуска программы.</p>
18 <p>В итоге результат отображения даты в Python изменится:</p>
18 <p>В итоге результат отображения даты в Python изменится:</p>
19 <p>2021-01-26 </p>
19 <p>2021-01-26 </p>
20 <p>Так как вы будете запускать этот код в другие дни (days), результат будет отличаться.</p>
20 <p>Так как вы будете запускать этот код в другие дни (days), результат будет отличаться.</p>
21 <h2><strong>Что внутри datetime?</strong></h2>
21 <h2><strong>Что внутри datetime?</strong></h2>
22 <p>У модуля<em>datetime</em>есть атрибуты:<em>time, timezone, tzinfo, timedelta</em>и многие другие. Количество доступных атрибутов довольно велико, поэтому, чтобы увидеть все возможные данные (data), можно воспользоваться функцией<em>dir</em>:</p>
22 <p>У модуля<em>datetime</em>есть атрибуты:<em>time, timezone, tzinfo, timedelta</em>и многие другие. Количество доступных атрибутов довольно велико, поэтому, чтобы увидеть все возможные данные (data), можно воспользоваться функцией<em>dir</em>:</p>
23 <p>Приблизительный вывод в Python:</p>
23 <p>Приблизительный вывод в Python:</p>
24 <p>На практике в Python чаще всего используют следующие классы модуля<em>datetime</em>:</p>
24 <p>На практике в Python чаще всего используют следующие классы модуля<em>datetime</em>:</p>
25 <ul><li>time,</li>
25 <ul><li>time,</li>
26 <li>date,</li>
26 <li>date,</li>
27 <li>datetime,</li>
27 <li>datetime,</li>
28 <li>timedelta.</li>
28 <li>timedelta.</li>
29 </ul><h2><strong>Класс</strong><strong>date</strong></h2>
29 </ul><h2><strong>Класс</strong><strong>date</strong></h2>
30 <p>Объект date позволяет работать с датой:</p>
30 <p>Объект date позволяет работать с датой:</p>
31 <p>import datetime</p>
31 <p>import datetime</p>
32 <p>a = datetime.date(2021, 1, 26)</p>
32 <p>a = datetime.date(2021, 1, 26)</p>
33 <p>print(a)</p>
33 <p>print(a)</p>
34 <p>То есть вывод даты будет соответствовать тому, что вы пропишете в коде:</p>
34 <p>То есть вывод даты будет соответствовать тому, что вы пропишете в коде:</p>
35 <p><em>2021-01-26 </em></p>
35 <p><em>2021-01-26 </em></p>
36 <p>Здесь <em>date</em>- конструктор класса <em>date</em>. Этот конструктор принимает 3 аргумента: год, месяц, день. Также присутствует переменная <em>a</em> - объект <em>date</em>.</p>
36 <p>Здесь <em>date</em>- конструктор класса <em>date</em>. Этот конструктор принимает 3 аргумента: год, месяц, день. Также присутствует переменная <em>a</em> - объект <em>date</em>.</p>
37 <p>Если надо получит текущую дату, используем уже знакомый метод<em>today</em>.</p>
37 <p>Если надо получит текущую дату, используем уже знакомый метод<em>today</em>.</p>
38 <p>from datetime import date</p>
38 <p>from datetime import date</p>
39 <p>today = date.today()</p>
39 <p>today = date.today()</p>
40 <p>print("Какая сегодня дата:", today)</p>
40 <p>print("Какая сегодня дата:", today)</p>
41 <p>Вывод на момент проверки:</p>
41 <p>Вывод на момент проверки:</p>
42 <p><em>Какая сегодня дата: 2021-01-26 </em></p>
42 <p><em>Какая сегодня дата: 2021-01-26 </em></p>
43 <p>Также существует возможность создавать объекты <em>date</em>, используя метку времени -<em>timestamp</em>. Этот термин используется при обозначении времени POSIX - подразумевается число секунд, которые прошли с 00:00:00 UTC 1.01.1970 г. Для преобразования метки времени в дату в Python используют метод <em>fromtimestamp</em>.</p>
43 <p>Также существует возможность создавать объекты <em>date</em>, используя метку времени -<em>timestamp</em>. Этот термин используется при обозначении времени POSIX - подразумевается число секунд, которые прошли с 00:00:00 UTC 1.01.1970 г. Для преобразования метки времени в дату в Python используют метод <em>fromtimestamp</em>.</p>
44 <p>Из объекта <em>date</em>можно без проблем получить текущие значения дня, года, месяца:</p>
44 <p>Из объекта <em>date</em>можно без проблем получить текущие значения дня, года, месяца:</p>
45 <p>from datetime import date</p>
45 <p>from datetime import date</p>
46 <p>today = date.today()</p>
46 <p>today = date.today()</p>
47 <p>print("Какой сейчас год:", today.year)</p>
47 <p>print("Какой сейчас год:", today.year)</p>
48 <p>print("Какой сейчас месяц:", today.month)</p>
48 <p>print("Какой сейчас месяц:", today.month)</p>
49 <p>print("Какой сегодня день:", today.day)</p>
49 <p>print("Какой сегодня день:", today.day)</p>
50 <p>А вот и результат:</p>
50 <p>А вот и результат:</p>
51 <h2><strong>Класс time</strong></h2>
51 <h2><strong>Класс time</strong></h2>
52 <p>Экземпляр класса <em>time </em>отвечает за время, куда входит широкий спектр данных (data): и часы, и минуты, и секунды, и даже микросекунды.</p>
52 <p>Экземпляр класса <em>time </em>отвечает за время, куда входит широкий спектр данных (data): и часы, и минуты, и секунды, и даже микросекунды.</p>
53 <p>Давайте опять передадим любые атрибуты, но чуть изменим код.</p>
53 <p>Давайте опять передадим любые атрибуты, но чуть изменим код.</p>
54 <p>from datetime import time</p>
54 <p>from datetime import time</p>
55 <p>a = time(11, 34, 56)</p>
55 <p>a = time(11, 34, 56)</p>
56 <p>print("часы =", a.hour)</p>
56 <p>print("часы =", a.hour)</p>
57 <p>print("минуты =", a.minute)</p>
57 <p>print("минуты =", a.minute)</p>
58 <p>print("секунды =", a.second)</p>
58 <p>print("секунды =", a.second)</p>
59 <p>print("микросекунды =", a.microsecond)</p>
59 <p>print("микросекунды =", a.microsecond)</p>
60 <p>Следует обратить внимание, что аргумент <em>microsecond</em>передан не был. В результате было присвоение дефолтное значение, равное нулю.</p>
60 <p>Следует обратить внимание, что аргумент <em>microsecond</em>передан не был. В результате было присвоение дефолтное значение, равное нулю.</p>
61 <h2><strong>Класс datetime</strong></h2>
61 <h2><strong>Класс datetime</strong></h2>
62 <p>Включает в себя информацию и о дате, и о времени.</p>
62 <p>Включает в себя информацию и о дате, и о времени.</p>
63 <p>Первые 3 аргумента обязательны для конструктора<em>datetime</em>- это year, month и day. Значения, которые отсутствуют, заполняются нулями.</p>
63 <p>Первые 3 аргумента обязательны для конструктора<em>datetime</em>- это year, month и day. Значения, которые отсутствуют, заполняются нулями.</p>
64 <p>Дополнительно можно прописать вывод метки времени:</p>
64 <p>Дополнительно можно прописать вывод метки времени:</p>
65 <p>Если же нужны значения текущего момента времени, получить его можно как посредством метода<em>now</em>, так и посредством метода<em>today</em>. В примере ниже задействован и<em>now</em>, и<em>today</em>:</p>
65 <p>Если же нужны значения текущего момента времени, получить его можно как посредством метода<em>now</em>, так и посредством метода<em>today</em>. В примере ниже задействован и<em>now</em>, и<em>today</em>:</p>
66 <h2><strong>Класс timedelta</strong></h2>
66 <h2><strong>Класс timedelta</strong></h2>
67 <p>Объект, называемый<em>timedelta</em>, позволяет получить разницу между 2-мя моментами времени. Вот, как это работает:</p>
67 <p>Объект, называемый<em>timedelta</em>, позволяет получить разницу между 2-мя моментами времени. Вот, как это работает:</p>
68 <p>Приведем еще один пример с time delta:</p>
68 <p>Приведем еще один пример с time delta:</p>
69 <p>Выше были созданы 2 timedelta-объекта - t1 и t2. Их разница и была выведена на экран.</p>
69 <p>Выше были созданы 2 timedelta-объекта - t1 и t2. Их разница и была выведена на экран.</p>
70 <p>Если нужна более подробная информация о timedeltas , лучше всего заглянуть в<a>официальную документацию</a>.</p>
70 <p>Если нужна более подробная информация о timedeltas , лучше всего заглянуть в<a>официальную документацию</a>.</p>
71 <h2><strong>Формат</strong></h2>
71 <h2><strong>Формат</strong></h2>
72 <p>Даты (dates), как и времена (times), могут быть представлены в разных странах по-разному. В США чаще применяют формат "MM/DD/YYYY" (months, days, years), в Соединенном Королевстве - "DD/MM/YYYY" (days, months, years). В языке программирования Python для работы с форматами существуют специальные методы: <em>strftime </em>и <em>strptime</em>.</p>
72 <p>Даты (dates), как и времена (times), могут быть представлены в разных странах по-разному. В США чаще применяют формат "MM/DD/YYYY" (months, days, years), в Соединенном Королевстве - "DD/MM/YYYY" (days, months, years). В языке программирования Python для работы с форматами существуют специальные методы: <em>strftime </em>и <em>strptime</em>.</p>
73 <p>Метод <em>strftime </em>определяется в классах <em>time</em>,<em>date</em>и <em>datetime</em>. Он позволит создать форматированную строку на основе заданного объекта.</p>
73 <p>Метод <em>strftime </em>определяется в классах <em>time</em>,<em>date</em>и <em>datetime</em>. Он позволит создать форматированную строку на основе заданного объекта.</p>
74 <p>Давайте отформатируем дату посредством<em>strftime</em>:</p>
74 <p>Давайте отформатируем дату посредством<em>strftime</em>:</p>
75 <p>Если же надо преобразовать строку в объект<em>datetime</em>, используют уже<em>strptime</em>.</p>
75 <p>Если же надо преобразовать строку в объект<em>datetime</em>, используют уже<em>strptime</em>.</p>
76 <h2><strong>Обработка часового пояса</strong></h2>
76 <h2><strong>Обработка часового пояса</strong></h2>
77 <p>Представим, что мы работаем над проектом, в котором надо обеспечить отображение даты и времени с учетом от часового пояса пользователей. Получить нужные данные (data) и обработать часовой пояс можно самостоятельно, но лучше всего воспользоваться готовым модулем <strong>pytZ</strong>.</p>
77 <p>Представим, что мы работаем над проектом, в котором надо обеспечить отображение даты и времени с учетом от часового пояса пользователей. Получить нужные данные (data) и обработать часовой пояс можно самостоятельно, но лучше всего воспользоваться готовым модулем <strong>pytZ</strong>.</p>
78 <p>Что здесь что: <em>datetime_NY</em> и <em>datetime_London</em> представляют собой объекты <em>datetime</em>, которые содержат текущее время и дату соответствующего часового пояса. Как видите, ничего сложного.</p>
78 <p>Что здесь что: <em>datetime_NY</em> и <em>datetime_London</em> представляют собой объекты <em>datetime</em>, которые содержат текущее время и дату соответствующего часового пояса. Как видите, ничего сложного.</p>
79 <p>Хотите получить самые новые знания про Python? Добро пожаловать на наши курсы!</p>
79 <p>Хотите получить самые новые знания про Python? Добро пожаловать на наши курсы!</p>
80 <a></a><p><em>Источник: https://pythonist.ru/rabota-s-datoj-i-vremenem-modul-datetime/.</em></p>
80 <a></a><p><em>Источник: https://pythonist.ru/rabota-s-datoj-i-vremenem-modul-datetime/.</em></p>
81  
81