Модуль time

Преобразовать локальное время в UTC.

Если ваша программа предназначена для работы в разных часовых поясах, а параметр времени оказывает влияние на генерируемые события, то придерживайтесь простого, но очень важного правила:

Всегда храните и работайте со временем в UTC. Если вам нужно сохранить оригинальные данные — пишите их отдельно. Никогда не храните локальное время и tz — Time Zone.

UTC — это зона без перехода на летнее время и без каких бы то ни было изменений в прошлом. Из UTC можно конвертировать время в локальное для любого часового пояса.

Так же смотрите модуль (добавлен в Python 3.9) — конкретная реализация часового пояса для поддержки базы данных часовых поясов IANA.

Возвращаемое значение:

объект смещения времени, который передается в качестве аргумента tz объектам datetime.datetime() и datetime.time().

Описание:

Класс модуля является подклассом , каждый экземпляр которого представляет часовой пояс, определенный фиксированным смещением от UTC.

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

Аргумент смещения должен быть указан как объект datetime.timedelta(), представляющий разницу между местным временем и UTC. Смещение должно быть строго между и , в противном случае появиться исключение .

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

>>> import datetime
>>> offset = datetime.timedelta(hours=3)
>>> datetime.timezone(offset, name='МСК')
# datetime.timezone(datetime.timedelta(0, 10800), 'МСК')

Методы экземпляра класса :

Метод возвращает фиксированное значение, указанное при создании экземпляра часового пояса.

Аргумент игнорируется. Возвращаемое значение является экземпляром , равным разнице между местным временем и UTC.

Смещение UTC не ограничено целым числом минут.

>>> import datetime
>>> offset = datetime.timedelta(hours=3)
>>> tz = datetime.timezone(offset, name='МСК')
>>> dt = datetime.datetime.now()
>>> tz.utcoffset(dt)
# datetime.timedelta(0, 10800)

# или
>>> dt = datetime.datetime.now(tz=tz)
>>> dt.utcoffset()
# datetime.timedelta(0, 10800)

Метод возвращает фиксированное значение, указанное при создании экземпляра часового пояса.

Если имя часового пояса при создании экземпляра не указано, то имя, возвращаемое , генерируется из значения смещения следующим образом. Если смещение равно , то имя — , в противном случае это строка в формате , где — это знак смещения, и — это две цифры и соответственно.

>>> import datetime
>>> offset = datetime.timedelta(hours=3)
>>> tz = datetime.timezone(offset, name='МСК')
>>> dt = datetime.datetime.now()
>>> tz.tzname(dt)
# 'МСК'

# или
>>> dt = datetime.datetime.now(tz=tz)
>>> dt.tzname()
# 'МСК'

Метод всегда возвращает .

Метод возвращает . Аргумент должен быть «осведомленным» экземпляром с , установленным в .

Атрибут возвращает часовой пояс UTC, эквивалентно .

Basic Examples¶

The following example shows how the
can be used to compare three different expressions:

$ python3 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 5: 30.2 usec per loop
$ python3 -m timeit '"-".join()'
10000 loops, best of 5: 27.5 usec per loop
$ python3 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 5: 23.2 usec per loop

This can be achieved from the with:

>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.3018611848820001
>>> timeit.timeit('"-".join()', number=10000)
0.2727368790656328
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.23702679807320237

A callable can also be passed from the :

>>> timeit.timeit(lambda "-".join(map(str, range(100))), number=10000)
0.19665591977536678

Range

If you want to iterate over a period, you can use the method:

Note

Supported units for are: , , ,
, , and

You can pass an amount for the passed unit to control the length of the gap:

You can also directly iterate over the instance,
the unit will be in this case:

You can check if a instance is inside a period using the keyword:

Testing

The testing methods allow you to set a instance (real or mock) to be returned
when a «now» instance is created.
The provided instance will be returned specifically under the following conditions:

  • A call to the method, ex. .
  • When the string «now» is passed to the method, ex.

If you don’t want to manually clear the mock (or you are afraid of forgetting),
you can use the provided contextmanager.

Limitations

Even though the class is a subclass of ,
there are some rare cases where it can’t replace the native class directly.
Here is a list (non-exhaustive) of the reported cases with a possible solution, if any:

  • will use the the function to determine the type of the object by default. To work around it you can register a new adapter:

  • (former ) and will use the the function to determine the type of the object by default. To work around it you can register a new adapter:

  • will use the method to store datetimes in the database. However, since is always timezone aware, the offset information will always be returned by raising an error, at least for MySQL databases. To work around it, you can either create your own or use the previous workaround for :

Модуль календаря

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

По умолчанию в календаре первый день недели — понедельник, а последний — воскресенье. Чтобы изменить это, вызовите функцию calendar.setfirstweekday () .

Вот список функций, доступных с модулем календаря

Sr.No. Описание функции
1

calendar.calendar (год, w = 2, l = 1, c = 6)

Возвращает многострочную строку с календарем для года, отформатированного в три столбца, разделенных пробелами c. w — ширина в символах каждой даты; каждая строка имеет длину 21 * w + 18 + 2 * c. l — количество строк за каждую неделю.

2

calendar.firstweekday ()

Возвращает текущую настройку для дня недели, который начинается каждую неделю. По умолчанию при первом импортировании календаря это 0, что означает понедельник.

3

calendar.isleap (год)

Возвращает True, если год является високосным; в противном случае Ложь.

4

calendar.leapdays (y1, y2)

Возвращает общее количество високосных дней в годах в пределах диапазона (y1, y2).

5

calendar.month (год, месяц, w = 2, l = 1)

Возвращает многострочную строку с календарем на месяц месяц год, одну строку в неделю плюс две строки заголовка. w — ширина в символах каждой даты; каждая строка имеет длину 7 * w + 6. l — количество строк за каждую неделю.

6

calendar.monthcalendar (год, месяц)

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

7

calendar.monthrange (год, месяц)

Возвращает два целых числа. Первый — это код дня недели для первого дня месяца месяца в году; второй — количество дней в месяце. Коды дня недели: от 0 (понедельник) до 6 (воскресенье); номера месяцев от 1 до 12.

8

calendar.prcal (год, w = 2, l = 1, c = 6)

Как печать calendar.calendar (год, w, l, c).

9

calendar.prmonth (год, месяц, w = 2, l = 1)

Как печать calendar.month (год, месяц, ш, л).

10

calendar.setfirstweekday (день недели)

Устанавливает первый день каждой недели в код дня недели. Коды дня недели: от 0 (понедельник) до 6 (воскресенье).

11

calendar.timegm (tupletime)

Инверсия time.gmtime: принимает момент времени в форме кортежа и возвращает тот же момент, что и число с плавающей запятой в секундах с начала эпохи.

12

calendar.weekday (год, месяц, день)

Возвращает код дня недели для указанной даты. Коды дня недели: от 0 (понедельник) до 6 (воскресенье); номера месяцев от 1 (январь) до 12 (декабрь).

Таблица форматов

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

Директива Значение Пример вывода
%A День недели как полное название локали. Среда
%a День недели как сокращенное название локали. Пн, вт, ср
%w День недели в виде десятичного числа, где 0 — воскресенье, а 6 — суббота. 0,1,2,3,4… 6
%d День месяца в виде десятичного числа с нулями. 01,02,03… 31
% -d День месяца в виде десятичного числа. (Зависит от платформы) 1,2,3…
% b Месяц как сокращенное название языкового стандарта. Море
% B Месяц как полное название локали. марш
% m Месяц как десятичное число с нулями. 01,02… 12
% -m Месяц как десятичное число. (Зависит от платформы) 1,2,… 12
%y Год без века как десятичное число с нулями. 20 (на 2020 год)
% Y Год со столетием в виде десятичного числа. 2020, 2021 и др.
%H Час (в 24-часовом формате) как десятичное число с нулями. 01, 02,…
%-H Час (24-часовой формат) в виде десятичного числа. (Зависит от платформы) 1,2,3,…
%I Час (12-часовой формат) как десятичное число с нулями. 01, 02, 03,…
%-I Час (12-часовой формат) в виде десятичного числа. (Зависит от платформы) 1, 2, 3…
%p Локальный эквивалент AM или PM. ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ
%M Минута в виде десятичного числа с нулями. 01, 02,… 59
% -M Минута как десятичное число. (Зависит от платформы) 1,2,3,… 59
% S Второй — десятичное число с нулями. 01, 02,… 59
% -S Секунда как десятичное число. (Зависит от платформы) 1, 2,… 59
% f Микросекунда в виде десятичного числа с нулями слева. 000000
%z Смещение UTC в форме + ЧЧММ или -ЧЧММ (пустая строка, если объект наивен). (пусто), +0000, -0400, +1030
%Z Название часового пояса (пустая строка, если объект наивный). (пусто), UTC, IST, CST
% j День года в виде десятичного числа с нулями. 1, 2, 3,… 366
% -j День года в виде десятичного числа. (Зависит от платформы) 1, 2, 3,… 366
% U Номер недели в году (воскресенье как первый день недели) в виде десятичного числа, дополненного нулями. Все дни нового года, предшествующие первому воскресенью, считаются нулевой неделей. 1, 2, 3,… 53
%W Номер недели в году (понедельник как первый день недели) в виде десятичного числа. Все дни нового года, предшествующие первому понедельнику, считаются нулевой неделей. 1, 2, 3,… 53
% c Соответствующее представление даты и времени для локали. Ср 06 мая 12:23:56 2020
%x Соответствующее представление даты языкового стандарта. 06.05.20
%X Соответствующее временное представление локали. 12:23:56
%% Буквальный символ «%». %

Measuring Performance

You can use to measure the performance of your program.

The way you do this is to use which, as the name suggests, provides a performance counter with a high resolution to measure short distances of time.

To use , you place a counter before your code begins execution as well as after your code’s execution completes:

>>>

First, captures the moment before you call the function. captures the moment after the function returns. The function’s total execution time took seconds.

Technical Detail: Python 3.7 introduced , which works the same as , but uses nanoseconds instead of seconds.

(or ) is the most precise way to measure the performance of your code using one execution. However, if you’re trying to accurately gauge the performance of a code snippet, I recommend using the Python module.

The time Module

There is a popular time module available in Python which provides functions for working with times and for converting between representations. Here is the list of all available methods −

Sr.No. Function with Description
1 time.altzone

The offset of the local DST timezone, in seconds west of UTC, if one is defined. This is negative if the local DST timezone is east of UTC (as in Western Europe, including the UK). Only use this if daylight is nonzero.

2 time.asctime()

Accepts a time-tuple and returns a readable 24-character string such as ‘Tue Dec 11 18:07:14 2008’.

3 time.clock( )

Returns the current CPU time as a floating-point number of seconds. To measure computational costs of different approaches, the value of time.clock is more useful than that of time.time().

4 time.ctime()

Like asctime(localtime(secs)) and without arguments is like asctime( )

5 time.gmtime()

Accepts an instant expressed in seconds since the epoch and returns a time-tuple t with the UTC time. Note : t.tm_isdst is always 0

6 time.localtime()

Accepts an instant expressed in seconds since the epoch and returns a time-tuple t with the local time (t.tm_isdst is 0 or 1, depending on whether DST applies to instant secs by local rules).

7 time.mktime(tupletime)

Accepts an instant expressed as a time-tuple in local time and returns a floating-point value with the instant expressed in seconds since the epoch.

8 time.sleep(secs)

Suspends the calling thread for secs seconds.

9 time.strftime(fmt)

Accepts an instant expressed as a time-tuple in local time and returns a string representing the instant as specified by string fmt.

10 time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’)

Parses str according to format string fmt and returns the instant in time-tuple format.

11 time.time( )

Returns the current time instant, a floating-point number of seconds since the epoch.

12 time.tzset()

Resets the time conversion rules used by the library routines. The environment variable TZ specifies how this is done.

Let us go through the functions briefly −

There are following two important attributes available with time module −

Sr.No. Attribute with Description
1

time.timezone

Attribute time.timezone is the offset in seconds of the local time zone (without DST) from UTC (>0 in the Americas; <=0 in most of Europe, Asia, Africa).

2

time.tzname

Attribute time.tzname is a pair of locale-dependent strings, which are the names of the local time zone without and with DST, respectively.

Необходимый инструмент и материалы

Для строительства поддона потребуются следующие материалы и инструментарий:

  • правило;
  • рулетка;
  • нож строительный;
  • кусачки;
  • строительный уровень;
  • мастерок;
  • шпатель обыкновенный и шпатель зубчатый;
  • зубило;
  • пластиковые трубы (отводная труба слива);
  • канализационный трап (горловина слива);
  • деревянные чурки (подставки);
  • бетонная стяжка (сухая смесь);
  • пленка или кусок рубероида;
  • облицовочный силикатный или красный кирпич;
  • гидроизоляционный состав (Файберпул, Декопроф);
  • плиточный клей ЕК-1000 и ЕК-6000;

  • резиновый мастерок для плиточного клея;
  • наждачная бумага;
  • мозаика и керамическая плитка водостойких марок;

  • затирка для плитки;

  • цемент.

Работа с unix timestamp/time на python

Совсем недавно, я начал свое изучение python. Мне потребовалось несколько дней для того чтобы начать писать на нем элементарные вещи. И мне бы хотелось сохранять полезную информацию в виде своих заметок и для питон.

Как преобразовать unix timestamp в datetime на Python?

Делается это очень просто:

#!/bin/env python3

import datetime
timestamp = 1339521878.04
value = datetime.datetime.fromtimestamp(timestamp)
print(value.strftime('%Y-%m-%d %H:%M:%S'))

Чтобы получить datetime времени (сейчас), можно выполнить:

#!/bin/env python3

import datetime,time
dt = datetime.datetime.now()
value = datetime.datetime.fromtimestamp(time.mktime(dt.timetuple()))
print(value.strftime('%Y-%m-%d %H:%M:%S'))

Вывод будет следующим:

2017-08-04 14:25:21

Как преобразовать datetime в timestamp на Python?

Делается это очень просто:

#!/bin/env python3

from datetime import datetime
import time

# time tuple in local time to timestamp
time_tuple = (2017, 11, 12, 13, 59, 27, 2, 317, 0)
timestamp = time.mktime(time_tuple)
print (repr(timestamp))

# time tuple in utc time to timestamp
time_tuple_utc = (2017, 11, 12, 13, 59, 27, 2, 317, 0)
timestamp_utc = calendar.timegm(time_tuple_utc)
print (repr(timestamp_utc))

Конвертация в строку:

#!/bin/env python3

from datetime import datetime
import time

# datetime object to string
dt_obj = datetime(2017, 11, 10, 17, 53, 59)
date_str = dt_obj.strftime("%Y-%m-%d %H:%M:%S")
print (date_str)

# time tuple to string
time_tuple = (2017, 11, 12, 13, 51, 18, 2, 317, 0)
date_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print (date_str)

Конвертация в datetime:

#!/bin/env python3
from datetime import datetime
import time

# time tuple to datetime object
time_tuple = (2017, 11, 12, 13, 51, 18, 2, 317, 0)
dt_obj = datetime(*time_tuple)
print (repr(dt_obj))

# date string to datetime object
date_str = "2017-11-10 17:53:59"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print (repr(dt_obj))

# timestamp to datetime object in local time
timestamp = 1226527167.595983
dt_obj = datetime.fromtimestamp(timestamp)
print (repr(dt_obj))

# timestamp to datetime object in UTC
timestamp = 1226527167.595983
dt_obj = datetime.utcfromtimestamp(timestamp)
print (repr(dt_obj))

Получаем вывод:

datetime.datetime(2017, 11, 12, 13, 51, 18)
datetime.datetime(2017, 11, 10, 17, 53, 59)
datetime.datetime(2008, 11, 12, 23, 59, 27, 595983)
datetime.datetime(2008, 11, 12, 21, 59, 27, 595983)

Конвертация time tuples:

#!/bin/env python3

from datetime import datetime
import time

# datetime object to time tuple
dt_obj = datetime(2017, 11, 10, 17, 53, 59)
time_tuple = dt_obj.timetuple()
print (repr(time_tuple))

# string to time tuple
date_str = "2017-11-10 17:53:59"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print (repr(time_tuple))

# timestamp to time tuple in UTC
timestamp = 1226527167.595983
time_tuple = time.gmtime(timestamp)
print (repr(time_tuple))

# timestamp to time tuple in local time
timestamp = 1226527167.595983
time_tuple = time.localtime(timestamp)
print (repr(time_tuple))

Получим вывод:

time.struct_time(tm_year=2017, tm_mon=11, tm_mday=10, tm_hour=17, tm_min=53, tm_sec=59, tm_wday=4, tm_yday=314, tm_isdst=-
1)
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=10, tm_hour=17, tm_min=53, tm_sec=59, tm_wday=4, tm_yday=314, tm_isdst=-
1)
time.struct_time(tm_year=2008, tm_mon=11, tm_mday=12, tm_hour=21, tm_min=59, tm_sec=27, tm_wday=2, tm_yday=317, tm_isdst=0
)
time.struct_time(tm_year=2008, tm_mon=11, tm_mday=12, tm_hour=23, tm_min=59, tm_sec=27, tm_wday=2, tm_yday=317, tm_isdst=0
)

Вот и все.

Как открыть HEIC

Сокращение ссылок Телеграмм: что это и как сделать?

Связанные темы и праздники

Использование разных кодов формата с функцией strftime()

strftime() использует коды формата для представления метки времени в стандартном и поддерживаемом формате. Кроме того, мы можем использовать коды формата, чтобы отделить дни, часы, недели и т. д. От метки времени и отобразить их.

Давайте разберемся с кодами формата на некоторых примерах.

Пример 1: Код формата — «% A» для отображения текущей даты по местному времени.

from time import strftime

day = strftime("%A") 
print("Current day:", day) 

Выход:

Current day: Tuesday

Пример 2: Код формата — «% c» для отображения текущего местного времени.

Код формата — ‘% c’ используется для отображения текущего местного времени в следующем формате:

День Месяц Дата часы: мин: сек Год

from time import strftime

day = strftime("%c") 
print("Current timestamp:", day) 

Выход:

Current timestamp: Tue Apr 28 16:42:22 2020

Пример 3: Код формата — «% R» для представления времени в 24-часовом формате.

from time import strftime

day = strftime("%R") 
print("Current time in a 24-hour format:", day) 

Выход:

Current time in a 24-hour format: 16:44

Пример 4: Код формата — «% r» для отображения времени в формате H: M: S вместе с описанием, например, AM или PM.

from time import strftime

day = strftime("%r") 
print("Current time -- hours:mins:seconds", day) 

Выход:

Current time -- hours:mins:seconds 05:05:19 PM

Пример 5:

from time import strftime

day = strftime("%x -- %X %p") 
print("Local date and time:", day) 

В приведенном выше примере мы использовали код формата «% x» для представления местной метки времени в терминах даты и «% X» для представления местного времени в форме H: M: S. Код формата «% p» используется для обозначения того, принадлежит ли метка времени AM или PM.

Выход:

Local date and time: 04/28/20 -- 17:08:42 PM

Basic Examples¶

The following example shows how the
can be used to compare three different expressions:

$ python3 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 5: 30.2 usec per loop
$ python3 -m timeit '"-".join()'
10000 loops, best of 5: 27.5 usec per loop
$ python3 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 5: 23.2 usec per loop

This can be achieved from the with:

>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.3018611848820001
>>> timeit.timeit('"-".join()', number=10000)
0.2727368790656328
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.23702679807320237

A callable can also be passed from the :

>>> timeit.timeit(lambda "-".join(map(str, range(100))), number=10000)
0.19665591977536678

Зачем обновлять биос?

Модуль datetime

Модуль содержит классы:

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

Класс datetime.date

Класс принимает три аргумента: год, месяц и день.

>>> import datetime
>>> date = datetime.date(2017, 4, 2)
>>> date.year
2017
>>> date.month
4
>>> date.day
2

Давайте посмотрим, какой сейчас день:

>>> today = datetime.date.today()
>>> today.year
2018
>>> today.month
4
>>> today.day
21

Класс datetime.datetime

Класс принимает аргументы: год, месяц, день, час, минута, секунда и микросекунда.

>>> date_time = datetime.datetime(2017, 4, 21, 13, 30, 10)
>>> date_time.year
2017
>>> date_time.month
4
>>> date_time.day
21
>>> date_time.hour
13
>>> date_time.minute
30
>>> date_time.second
10

Давайте посмотрим, какое сейчас время:

>>> today = datetime.datetime.today()
>>> today
datetime.datetime(2018, 4, 21, 12, 43, 27, 786725)
>>> today.hour
12
>>> today.minute
43
>>> datetime.datetime.now() # местное время
datetime.datetime(2018, 4, 24, 13, 2, 39, 17479)
>>> datetime.datetime.utcnow() # время по Гринвичу
datetime.datetime(2018, 4, 24, 10, 2, 47, 46330)

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

>>> today = datetime.datetime.today()
>>> today
datetime.datetime(2018, 4, 21, 13, 26, 54, 387462)
>>> today.date() # отдельно дата
datetime.date(2018, 4, 21)
>>> today.time() # отдельно время
datetime.time(13, 26, 54, 387462)

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

>>> today = datetime.date.today().strftime("%d.%m.%Y")
>>> today
'21.04.2018'
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "ru") # задаем локаль для вывода даты на русском языке
'ru'
>>> today = datetime.datetime.today().strftime("%A, %d.%m.%Y")
>>> today
'суббота, 21.04.2018'
Сокращенное название дня недели
Полное название дня недели
Сокращенное название месяца
Полное название месяца
Дата и время
День месяца
24-часовой формат часа
12-часовой формат часа
День года. Цифровой формат
Номер месяца. Цифровой формат
Минута. Цифровой формат
До полудня или после (AM или PM)
Секунда. Цифровой формат
Номер недели в году. Цифровой формат (с воскресенья)
День недели. Цифровой формат
Номер недели в году. Цифровой формат (с понедельника)
Дата
Время
Год без века. Цифровой формат
Год с веком. Цифровой формат
Временная зона
Знак процента

Методы класса :

  • — объект из текущей даты и времени; работает также, как и со значением .
  • — объект из текущей даты и времени, местное время.
  • — объект из текущей даты и времени, по Гринвичу.
  • — дата из стандартного представления времени.
  • — дата из числа, представляющего собой количество дней, прошедших с 01.01.1970.
  • — объект из комбинации объектов и .
  • — преобразует строку в (так же, как и функция из модуля ).
  • — преобразует объект в строку согласно формату.
  • — объект даты (с отсечением времени).
  • — объект времени (с отсечением даты).
  • — возвращает новый объект с изменёнными атрибутами.
  • — возвращает из .
  • — количество дней, прошедших с 01.01.1970.
  • — возвращает время в секундах с начала эпохи Unix.
  • — день недели в виде числа, понедельник — 0, воскресенье — 6.
  • — день недели в виде числа, понедельник — 1, воскресенье — 7.
  • — кортеж (год в формате ISO, ISO номер недели, ISO день недели).
  • — красивая строка вида или, если ,
  • — возвращает строковое представление текущего местного времени.

Класс datetime.timedelta

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

>>> delta = datetime.timedelta(days = 5, hours = 1, minutes = 1)
>>> delta
datetime.timedelta(5, 3660)

Интервал времени 5 дней, 1 час и 1 минута. Получить результат можно с помощью атрибутов , и (5 дней и 3660 секунд):

>>> delta.days
5
>>> delta.seconds
3660

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

>>> today = datetime.datetime.today() # текущая дата
>>> today
datetime.datetime(2018, 4, 21, 15, 19, 2, 515432)
>>> future = datetime.datetime(2019, 4, 21, 15, 19, 2, 515432) # дата на один год больше
>>> delta = future - today
>>> delta
datetime.timedelta(365)
>>> delta.total_seconds() # 365 дней в секундах
31536000.0

Прибавить к текущей дате 10 дней, 10 часов и 10 минут:

>>> today = datetime.datetime.today()
>>> delta = datetime.timedelta(days = 10, hours = 10, minutes = 10)
>>> future = today + delta
>>> today # 21 апреля 2018 года, 15:29
datetime.datetime(2018, 4, 21, 15, 29, 29, 265954)
>>> future # 2 мая 2018 года, 01:39
datetime.datetime(2018, 5, 2, 1, 39, 29, 265954)
Добавить комментарий

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

Adblock
detector