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