# `time` — Time access and conversions

Цей модуль забезпечує різні функції, пов’язані з часом. Для пов’язаних функцій перегляньте також модулі `datetime` і `calendar`.

Хоча цей модуль завжди доступний, не всі функції доступні на всіх платформах. Більшість функцій, визначених у цьому модулі, викликають функції бібліотеки платформи C з однаковою назвою. Інколи може бути корисним ознайомитися з документацією платформи, оскільки семантика цих функцій відрізняється на різних платформах.

Доречно пояснення деяких термінів і умовностей.

- The epoch is the point where the time starts, the return value of `time.gmtime(0)`. It is January 1, 1970, 00:00:00 (UTC) on all platforms.

- Термін seconds since the epoch відноситься до загальної кількості секунд, що минули з епохи, як правило, за винятком високосних секунд (leap seconds). Секунди високосного значення виключаються з цієї суми на всіх POSIX-сумісних платформах.

- The functions in this module may not handle dates and times before the epoch or far in the future. The cut-off point in the future is determined by the C library; for 32-bit systems, it is typically in 2038.

- Функція `strptime()` може аналізувати 2-значні роки, якщо надається код формату `%y`. Коли 2-значні роки аналізуються, вони перетворюються відповідно до стандартів POSIX та ISO C: значення 69–99 відображаються на 1969–1999, а значення 0–68 – у 2000–2068.

- UTC is Coordinated Universal Time and superseded Greenwich Mean Time or GMT as the basis of international timekeeping. The acronym UTC is not a mistake but conforms to an earlier, language-agnostic naming scheme for time standards such as UT0, UT1, and UT2.

- DST – це літній час, зміна часового поясу (зазвичай) на одну годину протягом частини року. Правила літнього часу є чарівними (визначаються місцевим законодавством) і можуть змінюватися з року в рік. Бібліотека C має таблицю, що містить локальні правила (часто її зчитують із системного файлу для гнучкості) і є єдиним джерелом справжньої мудрості в цьому відношенні.

- Точність різних функцій реального часу може бути нижчою, ніж передбачається одиницями, у яких виражено їх значення або аргумент. наприклад у більшості систем Unix годинник «тикає» лише 50 або 100 разів на секунду.

- On the other hand, the precision of `time()` and `sleep()` is better than their Unix equivalents: times are expressed as floating-point numbers, `time()` returns the most accurate time available (using Unix `gettimeofday()` where available), and `sleep()` will accept a time with a nonzero fraction (Unix `select()` is used to implement this, where available).

- Значення часу, що повертається `gmtime()`, `localtime()` і `strptime()` і приймається `asctime()`, `mktime()` і `strftime()`, є послідовністю з 9 цілих чисел. Повернуті значення `gmtime()`, `localtime()` і `strptime()` також пропонують імена атрибутів для окремих полів.

  Перегляньте `struct_time` для опису цих об’єктів.

  Змінено в версії 3.3: The `struct_time` type was extended to provide the `tm_gmtoff` and `tm_zone` attributes when platform supports corresponding `struct tm` members.

  Змінено в версії 3.6: The `struct_time` attributes `tm_gmtoff` and `tm_zone` are now available on all platforms.

- Використовуйте такі функції для перетворення між представленнями часу:

  Від | до | використання
  --- | --- | ---
  секунд від епохи | `struct_time` в UTC | `gmtime()`
  секунд від епохи | `struct_time` за місцевим часом | `localtime()`
  `struct_time` в UTC | секунд від епохи | `calendar.timegm()`
  `struct_time` за місцевим часом | секунд від епохи | `mktime()`

## Функції

time.asctime([t])

  Перетворіть кортеж або `struct_time`, який представляє час, повернутий `gmtime()` або `localtime()`, на рядок такої форми: `'Sun Jun 20 23:21:05 1993'`. Поле дня складається з двох символів і доповнюється пробілом, якщо день складається з однієї цифри, наприклад: `'Wed Jun 9 04:26:40 1993'`.

  Якщо t не вказано, використовується поточний час, який повертає `localtime()`. Інформація про мову не використовується `asctime()`.

  Примітка

  На відміну від однойменної функції C, `asctime()` не додає кінцевий новий рядок.

time.pthread_getcpuclockid(thread_id)

  Повертає clk_id специфічного для потоку годинника ЦП для вказаного thread_id.

  Використовуйте `threading.get_ident()` або атрибут `ident` об’єктів `threading.Thread`, щоб отримати відповідне значення для thread_id.

  Попередження

  Передача недійсного або простроченого thread_id може призвести до невизначеної поведінки, наприклад до помилки сегментації.

  Availability: Unix

  See the man page for pthread_getcpuclockid(3) for further information.

  Added in version 3.7.

time.clock_getres(clk_id)

  Повертає роздільну здатність (точність) указаного годинника clk_id. Перегляньте Константи ID годинника список допустимих значень для clk_id.

  Availability: Unix.

  Added in version 3.3.

time.clock_gettime(clk_id) → float

  Повертає час указаного годинника clk_id. Зверніться до Константи ID годинника для списку прийнятних значень для clk_id.

  Використовуйте `clock_gettime_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Availability: Unix.

  Added in version 3.3.

time.clock_gettime_ns(clk_id) → int

  Подібно до `clock_gettime()`, але повертає час у наносекундах.

  Availability: Unix.

  Added in version 3.7.

time.clock_settime(clk_id, time)

  Встановіть час зазначеного годинника clk_id. Наразі `CLOCK_REALTIME` є єдиним прийнятним значенням для clk_id.

  Використовуйте `clock_settime_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Availability: Unix, not Android, not iOS.

  Added in version 3.3.

  Змінено в версії 3.15: Accepts any real number as time, not only integer or float.

time.clock_settime_ns(clk_id, time: int)

  Подібно до `clock_settime()`, але встановлює час у наносекундах.

  Availability: Unix, not Android, not iOS.

  Added in version 3.7.

time.ctime([secs])

  Convert a time expressed in seconds since the epoch to a string of a form: `'Sun Jun 20 23:21:05 1993'` representing local time. The day field is two characters long and is space padded if the day is a single digit, e.g.: `'Wed Jun 9 04:26:40 1993'`.

  Якщо secs не вказано або `None`, використовується поточний час, який повертає `time()`. `ctime(secs)` еквівалентний `asctime(localtime(secs))`. Інформація про мову не використовується `ctime()`.

  Змінено в версії 3.15: Accepts any real number, not only integer or float.

time.get_clock_info(name)

  Отримати інформацію про вказаний годинник як об’єкт простору імен. Підтримувані назви годинника та відповідні функції для читання їх значення:

  - `'монотонний'`: `time.monotonic()`

  - `'perf_counter'`: `time.perf_counter()`

  - `'process_time'`: `time.process_time()`

  - `'thread_time'`: `time.thread_time()`

  - `'час'`: `time.time()`

  Результат має такі атрибути:

  - adjustable: `True` if the clock can be set to jump forward or backward in time, `False` otherwise. Does not refer to gradual NTP rate adjustments.

  - реалізація: назва основної функції C, яка використовується для отримання значення тактової частоти. Зверніться до Константи ID годинника щодо можливих значень.

  - монотонний: `True`, якщо годинник не може повернутися назад, `False` інакше

  - resolution: роздільна здатність годинника в секундах (`float`)

  Added in version 3.3.

time.gmtime([secs])

  Convert a time expressed in seconds since the epoch to a `struct_time` in UTC in which the dst flag is always zero. If secs is not provided or `None`, the current time as returned by `time()` is used. Fractions of a second are ignored. See above for a description of the `struct_time` object. See `calendar.timegm()` for the inverse of this function.

  Змінено в версії 3.15: Accepts any real number, not only integer or float.

time.localtime([secs])

  Як `gmtime()`, але перетворює на місцевий час. Якщо secs не вказано або `None`, використовується поточний час, який повертає `time()`. Прапор DST встановлюється на `1`, коли літній час застосовується до даного часу.

  `localtime()` може викликати `OverflowError`, якщо позначка часу виходить за межі діапазону значень, які підтримують функції `localtime()` або `gmtime()` платформи, і `OSError` під час помилки `localtime()` або `gmtime()`. Зазвичай це обмежується роками між 1970 і 2038 роками.

  Змінено в версії 3.15: Accepts any real number, not only integer or float.

time.mktime(t)

  This is the inverse function of `localtime()`. Its argument is the `struct_time` or full 9-tuple (since the dst flag is needed; use `-1` as the dst flag if it is unknown) which expresses the time in local time, not UTC. It returns a floating-point number, for compatibility with `time()`. If the input value cannot be represented as a valid time, either `OverflowError` or `ValueError` will be raised (which depends on whether the invalid value is caught by Python or the underlying C libraries). The earliest date for which it can generate a time is platform-dependent.

time.monotonic() → float

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

  Clock:

  - On Windows, call `QueryPerformanceCounter()` and `QueryPerformanceFrequency()`.

  - On macOS, call `mach_absolute_time()` and `mach_timebase_info()`.

  - On HP-UX, call `gethrtime()`.

  - Call `clock_gettime(CLOCK_HIGHRES)` if available.

  - Otherwise, call `clock_gettime(CLOCK_MONOTONIC)`.

  Використовуйте `monotonic_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Added in version 3.3.

  Змінено в версії 3.5: The function is now always available and the clock is now the same for all processes.

  Змінено в версії 3.10: On macOS, the clock is now the same for all processes.

time.monotonic_ns() → int

  Подібно до `monotonic()`, але повертає час у наносекундах.

  Added in version 3.7.

time.perf_counter() → float

  Return the value (in fractional seconds) of a performance counter, i.e. a clock with the highest available resolution to measure a short duration. It does include time elapsed during sleep. The clock is the same for all processes. The reference point of the returned value is undefined, so that only the difference between the results of two calls is valid.

  Деталі реалізації CPython: On CPython, use the same clock as `time.monotonic()` and is a monotonic clock, i.e. a clock that cannot go backwards.

  Використовуйте `perf_counter_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Added in version 3.3.

  Змінено в версії 3.10: On Windows, the clock is now the same for all processes.

  Змінено в версії 3.13: Use the same clock as `time.monotonic()`.

time.perf_counter_ns() → int

  Подібно до `perf_counter()`, але повертає час у наносекундах.

  Added in version 3.7.

time.process_time() → float

  Повертає значення (у частках секунд) суми часу процесора системи та користувача поточного процесу. Він не включає час, що минув під час сну. За визначенням це стосується всього процесу. Точка відліку повернутого значення не визначена, тому дійсна лише різниця між результатами двох викликів.

  Використовуйте `process_time_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Added in version 3.3.

time.process_time_ns() → int

  Подібно до `process_time()`, але повертає час у наносекундах.

  Added in version 3.7.

time.sleep(secs)

  Suspend execution of the calling thread for the given number of seconds. The argument may be a non-integer to indicate a more precise sleep time.

  If the sleep is interrupted by a signal and no exception is raised by the signal handler, the sleep is restarted with a recomputed timeout.

  The suspension time may be longer than requested by an arbitrary amount, because of the scheduling of other activity in the system.

  Windows implementation

  On Windows, if secs is zero, the thread relinquishes the remainder of its time slice to any other thread that is ready to run. If there are no other threads ready to run, the function returns immediately, and the thread continues execution. On Windows 10 and newer the implementation uses a high-resolution timer which provides resolution of 100 nanoseconds. If secs is zero, `Sleep(0)` is used.

  Unix implementation

  - Use `clock_nanosleep()` if available (resolution: 1 nanosecond);

  - Or use `nanosleep()` if available (resolution: 1 nanosecond);

  - Or use `select()` (resolution: 1 microsecond).

  Примітка

  To emulate a «no-op», use `pass` instead of `time.sleep(0)`.

  To voluntarily relinquish the CPU, specify a real-time scheduling policy and use `os.sched_yield()` instead.

  Raises an auditing event `time.sleep` with argument `secs`.

  Змінено в версії 3.5: Функція тепер перебуває в режимі сну принаймні секунд, навіть якщо сон переривається сигналом, за винятком випадків, коли обробник сигналу викликає виняток (перегляньте PEP 475 для обґрунтування).

  Змінено в версії 3.11: On Unix, the `clock_nanosleep()` and `nanosleep()` functions are now used if available. On Windows, a waitable timer is now used.

  Змінено в версії 3.13: Raises an auditing event.

  Змінено в версії 3.15: Accepts any real number, not only integer or float.

time.strftime(format[, t])

  Перетворіть кортеж або `struct_time`, що представляє час, який повертає `gmtime()` або `localtime()`, на рядок, як зазначено в аргументі format. Якщо t не вказано, використовується поточний час, який повертає `localtime()`. format має бути рядком. `ValueError` виникає, якщо будь-яке поле в t виходить за межі дозволеного діапазону.

  0 є допустимим аргументом для будь-якої позиції в часовому кортежі; якщо зазвичай це нелегально, значення примусово має бути правильним.

  Наступні директиви можуть бути вбудовані в рядок format. Вони відображаються без додаткової специфікації ширини поля та точності та замінюються вказаними символами в результаті `strftime()`:

  Директива | Значення | Примітки
  --- | --- | ---
  `%a` | Скорочена назва дня тижня в локалі. |
  `%A` | Повна назва робочого дня локалі. |
  `%b` | Скорочена назва місяця в локалі. |
  `%B` | Повна назва місяця. |
  `%c` | Відповідне представлення дати та часу локалі. |
  `%d` | День місяця у вигляді десяткового числа [01,31]. |
  `%f` | Microseconds as a decimal number [000000,999999]. | (1)
  `%H` | Година (24-годинний формат) як десяткове число [00,23]. |
  `%I` | Година (12-годинний годинник) як десяткове число [01,12]. |
  `%j` | День року як десяткове число [001,366]. |
  `%m` | Місяць як десяткове число [01,12]. |
  `%M` | Хвилина як десяткове число [00,59]. |
  `%p` | Локальний еквівалент AM або PM. | (2)
  `%S` | Секунда як десяткове число [00,61]. | (3)
  `%U` | Номер тижня року (неділя як перший день тижня) у вигляді десяткового числа [00,53]. Усі дні в новому році, що передують першій неділі, вважаються нульовим тижнем. | (4)
  `%u` | Day of the week (Monday is 1; Sunday is 7) as a decimal number [1, 7]. |
  `%w` | День тижня як десяткове число [0(неділя),6]. |
  `%W` | Номер тижня року (понеділок як перший день тижня) у вигляді десяткового числа [00,53]. Усі дні в новому році, що передують першому понеділку, вважаються нульовим тижнем. | (4)
  `%x` | Відповідне представлення дати в локалі. |
  `%X` | Відповідне представлення часу локалі. |
  `%y` | Рік без століття як десяткове число [00,99]. |
  `%Y` | Рік із століттям як десяткове число. |
  `%z` | Зміщення часового поясу, що вказує на додатну або від’ємну різницю в часі від UTC/GMT у формі +ГГММ або -ГГММ, де H означає десяткові цифри години, а M – десяткові цифри хвилин [-23:59, +23:59]. [1] |
  `%Z` | Назва часового поясу (без символів, якщо часовий пояс не існує). Застаріле. [1] |
  `%G` | ISO 8601 year (similar to `%Y` but follows the rules for the ISO 8601 calendar year). The year starts with the week that contains the first Thursday of the calendar year. |
  `%V` | ISO 8601 week number (as a decimal number [01,53]). The first week of the year is the one that contains the first Thursday of the year. Weeks start on Monday. |
  `%%` | Буквальний символ `'%''`. |

  Примітки:

  1. The `%f` format directive only applies to `strptime()`, not to `strftime()`. However, see also `datetime.datetime.strptime()` and `datetime.datetime.strftime()` where the `%f` format directive applies to microseconds.

  2. При використанні з функцією `strptime()` директива `%p` впливає на поле вихідних годин, лише якщо директива `%I` використовується для аналізу години.

  3. Діапазон насправді становить від `0` до `61`; значення `60` є дійсним у мітках часу, що представляють високосні секунди (leap seconds), а значення `61` підтримується з історичних причин.

  4. При використанні з функцією `strptime()`, `%U` і `%W` використовуються в обчисленнях лише тоді, коли вказано день тижня та рік.

  Here is an example, a format for dates compatible with that specified in the RFC 5322 Internet email standard. [1]

      >>> from time import gmtime, strftime
      >>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
      'Thu, 28 Jun 2001 14:17:15 +0000'

  Додаткові директиви можуть підтримуватися на певних платформах, але лише перелічені тут мають значення, стандартизовані ANSI C. Щоб побачити повний набір кодів формату, які підтримуються на вашій платформі, зверніться до документації strftime(3).

  На деяких платформах необов’язкова ширина поля та специфікація точності можуть відразу слідувати за початковим `'%'` директиви в наступному порядку; це також не портативно. Ширина поля зазвичай дорівнює 2, за винятком `%j`, де вона дорівнює 3.

time.strptime(string[, format])

  Проаналізуйте рядок, що представляє час, відповідно до формату. Поверненим значенням є `struct_time`, яке повертає `gmtime()` або `localtime()`.

  Параметр format використовує ті самі директиви, що й `strftime()`; за замовчуванням `"%a %b %d %H:%M:%S %Y"`, що відповідає форматуванню, яке повертає `ctime()`. Якщо рядок не може бути розібраний відповідно до формату, або якщо він має зайві дані після аналізу, виникає `ValueError`. Значення за замовчуванням, які використовуються для заповнення будь-яких відсутніх даних, коли точніші значення неможливо отримати, це `(1900, 1, 1, 0, 0, 0, 0, 1, -1)`. І string, і format мають бути рядками.

  Наприклад:

      >>> import time
      >>> time.strptime("30 Nov 00", "%d %b %y")
      time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0,
                       tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

  Підтримка директиви `%Z` базується на значеннях, що містяться в `tzname`, і тому, чи `daylight` є істинним. Через це він залежить від платформи, за винятком розпізнавання UTC і GMT, які завжди відомі (і вважаються не літніми часовими поясами).

  Підтримуються лише директиви, зазначені в документації. Оскільки `strftime()` реалізовано на кожній платформі, іноді він може пропонувати більше директив, ніж перераховано. Але `strptime()` не залежить від будь-якої платформи і тому не обов’язково підтримує всі доступні директиви, які не задокументовані як підтримувані.

class time.struct_time

  Тип послідовності значень часу, яку повертають `gmtime()`, `localtime()` і `strptime()`. Це об’єкт із інтерфейсом named tuple: доступ до значень можна отримати за індексом та назвою атрибута. Присутні такі значення:

  Індекс | Атрибут | Цінності
  0 | tm_year | (наприклад, 1993 р.)
  1 | tm_mon | діапазон [1, 12]
  2 | tm_mday | діапазон [1, 31]
  3 | tm_hour | діапазон [0, 23]
  4 | tm_min | діапазон [0, 59]
  5 | tm_sec | range [0, 61]; see Note (2) in `strftime()`
  6 | tm_wday | range [0, 6]; Monday is 0
  7 | tm_yday | діапазон [1, 366]
  8 | tm_isdst | 0, 1 або -1; Дивіться нижче
  N/A | tm_zone | абревіатура назви часового поясу
  N/A | tm_gmtoff | зміщення на схід від UTC у секундах

  Зверніть увагу, що на відміну від структури C, значення місяця є діапазоном [1, 12], а не [0, 11].

  У викликах `mktime()` `tm_isdst` може бути встановлено на 1, коли літній час діє, і на 0, коли він не діє. Значення -1 вказує на те, що це невідомо, і зазвичай призводить до заповнення правильного стану.

  Коли кортеж із неправильною довжиною передається до функції, яка очікує `struct_time`, або містить елементи неправильного типу, виникає `TypeError`.

time.time() → float

  Return the time in seconds since the epoch as a floating-point number. The handling of leap seconds is platform dependent. On Windows and most Unix systems, the leap seconds are not counted towards the time in seconds since the epoch. This is commonly referred to as Unix time.

  Note that even though the time is always returned as a floating-point number, not all systems provide time with a better precision than 1 second. While this function normally returns non-decreasing values, it can return a lower value than a previous call if the system clock has been set back between the two calls.

  Число, яке повертає `time()`, можна перетворити на більш поширений формат часу (тобто рік, місяць, день, година тощо) у UTC, передавши його функції `gmtime()` або в місцевий час, передавши його функції `localtime()`. В обох випадках повертається об’єкт `struct_time`, з якого можна отримати доступ до компонентів календарної дати як атрибутів.

  Clock:

  - On Windows, call `GetSystemTimePreciseAsFileTime()`.

  - Call `clock_gettime(CLOCK_REALTIME)` if available.

  - Otherwise, call `gettimeofday()`.

  Використовуйте `time_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

Змінено в версії 3.13: On Windows, calls `GetSystemTimePreciseAsFileTime()` instead of `GetSystemTimeAsFileTime()`.

time.time_ns() → int

  Подібно до `time()`, але повертає час як ціле число наносекунд з епохи.

  Added in version 3.7.

time.thread_time() → float

  Повертає значення (у частках секунд) суми часу процесора системи та користувача поточного потоку. Він не включає час, що минув під час сну. За визначенням це залежить від потоку. Точка відліку поверненого значення не визначена, тому дійсна лише різниця між результатами двох викликів в одному потоці.

  Використовуйте `thread_time_ns()`, щоб уникнути втрати точності, викликаної типом `float`.

  Availability: Linux, Unix, Windows.

  Unix systems supporting `CLOCK_THREAD_CPUTIME_ID`.

  Added in version 3.7.

time.thread_time_ns() → int

  Подібно до `thread_time()`, але повертає час у наносекундах.

  Added in version 3.7.

time.tzset()

  Скинути правила перетворення часу, які використовуються підпрограмами бібліотеки. Змінна середовища `TZ` визначає, як це робиться. Він також встановить змінні `tzname` (зі змінної середовища `TZ`), `timezone` (не літній час, секунди на захід від UTC), `altzone` (літній час, секунди на захід від UTC ) і `daylight` (до 0, якщо цей часовий пояс не має правил переходу на літній час, або до відмінного від нуля, якщо існує час, минулий, теперішній або майбутній, коли застосовується літній час).

  Availability: Unix.

  Примітка

  Хоча в багатьох випадках зміна змінної середовища `TZ` може вплинути на вихід таких функцій, як `localtime()` без виклику `tzset()`, не слід покладатися на таку поведінку.

  Змінна середовища `TZ` не повинна містити пробілів.

  Стандартний формат змінної середовища `TZ` такий (для ясності додано пробіли):

      std offset [dst [offset [,start[/time], end[/time]]]]

  Де компоненти:

  `std` і `dst`

    Три або більше алфавітно-цифрових абревіатур часового поясу. Вони будуть поширені у time.tzname

  `зсув`

    Зміщення має вигляд: `± hh[:mm[:ss]]`. Це вказує на додане значення місцевого часу для прибуття до UTC. Якщо перед ним стоїть «-», часовий пояс розташований на схід від початкового меридіана; інакше це захід. Якщо після літнього часу немає зміщення, вважається, що літній час на одну годину випереджає стандартний час.

  `початок[/час], кінець[/час]`

    Вказує, коли переходити на літній час і повертатися з нього. Початкова та кінцева дати мають один із наведених нижче форматів.

    `Jn`

      Юліанський день n (1 <= n <= 365). Високосні дні не враховуються, тому в усіх роках 28 лютого — це 59 день, а 1 березня — 60 день.

    `n`

      Юліанський день від нуля (0 <= n <= 365). Високосні дні враховуються, і можна відноситися до 29 лютого.

    `Mm.n.d`

      d“-й день (0 <= d <= 6) тижня n місяця m року (1 <= n <= 5, 1 <= m <= 12, де тиждень 5 означає «останній d день місяця m», який може відбуватися як на четвертому, так і на п’ятому тижні). Тиждень 1 – це перший тиждень, на якому настає d-й день. Нульовий день - неділя.

    `час` має той самий формат, що `зсув`, за винятком того, що не допускається початок знака („-“ або „+“). За умовчанням, якщо час не вказано, це 02:00:00.

      >>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
      >>> time.tzset()
      >>> time.strftime('%X %x %Z')
      '02:07:36 05/08/03 EDT'
      >>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
      >>> time.tzset()
      >>> time.strftime('%X %x %Z')
      '16:08:12 05/08/03 AEST'

  У багатьох системах Unix (включаючи *BSD, Linux, Solaris і Darwin) зручніше використовувати системну базу даних zoneinfo (tzfile(5)) для визначення правил часового поясу. Для цього встановіть змінну середовища `TZ` на шлях необхідного файлу даних часового поясу відносно кореня системної бази даних часових поясів „zoneinfo“, яка зазвичай знаходиться в `/usr/share/zoneinfo` . Наприклад, «США/Схід», «Австралія/Мельбурн», «Єгипет» або «Європа/Амстердам».

      >>> os.environ['TZ'] = 'US/Eastern'
      >>> time.tzset()
      >>> time.tzname
      ('EST', 'EDT')
      >>> os.environ['TZ'] = 'Egypt'
      >>> time.tzset()
      >>> time.tzname
      ('EET', 'EEST')

## Константи ID годинника

Ці константи використовуються як параметри для `clock_getres()` і `clock_gettime()`.

time.CLOCK_BOOTTIME

  Ідентичний `CLOCK_MONOTONIC`, за винятком того, що він також включає будь-який час призупинення системи.

  Це дозволяє програмам отримувати монотонний годинник з підтримкою призупинення без необхідності мати справу з ускладненнями `CLOCK_REALTIME`, які можуть мати розриви, якщо час змінюється за допомогою `settimeofday()` або подібного.

  Availability: Linux >= 2.6.39.

  Added in version 3.7.

time.CLOCK_HIGHRES

  ОС Solaris має таймер `CLOCK_HIGHRES`, який намагається використовувати оптимальне апаратне джерело та може давати роздільну здатність, близьку до наносекунд. `CLOCK_HIGHRES` - це нерегульований годинник з високою роздільною здатністю.

  Availability: Solaris.

  Added in version 3.3.

time.CLOCK_MONOTONIC

  Годинник, який не можна налаштувати та відображає монотонний час із деякої невизначеної початкової точки.

  Availability: Unix.

  Added in version 3.3.

time.CLOCK_MONOTONIC_RAW

  Подібно до `CLOCK_MONOTONIC`, але надає доступ до необробленого апаратного часу, який не підлягає коригуванням NTP.

  Availability: Linux >= 2.6.28, macOS >= 10.12.

  Added in version 3.3.

time.CLOCK_MONOTONIC_RAW_APPROX

  Similar to `CLOCK_MONOTONIC_RAW`, but reads a value cached by the system at context switch and hence has less accuracy.

  Availability: macOS >= 10.12.

  Added in version 3.13.

time.CLOCK_PROCESS_CPUTIME_ID

  Таймер високої роздільної здатності для кожного процесу від ЦП.

  Availability: Unix.

  Added in version 3.3.

time.CLOCK_PROF

  Таймер високої роздільної здатності для кожного процесу від ЦП.

  Availability: FreeBSD, NetBSD >= 7, OpenBSD.

  Added in version 3.7.

time.CLOCK_TAI

  International Atomic Time

  Система повинна мати поточну таблицю високосних секунд, щоб це дало правильну відповідь. Програмне забезпечення PTP або NTP може підтримувати таблицю високосної секунди.

  Availability: Linux.

  Added in version 3.9.

time.CLOCK_THREAD_CPUTIME_ID

  Годинник процесорного часу, що залежить від потоку.

  Availability: Unix.

  Added in version 3.3.

time.CLOCK_UPTIME

  Час, абсолютне значення якого — це час роботи системи без призупинення, що забезпечує точне вимірювання часу безвідмовної роботи, як абсолютного, так і інтервального.

  Availability: FreeBSD, OpenBSD >= 5.5.

  Added in version 3.7.

time.CLOCK_UPTIME_RAW

  Годинник, який монотонно збільшується, відстежує час з довільної точки, не залежить від коригування частоти чи часу та не збільшується, коли система сплячої системи.

  Availability: macOS >= 10.12.

  Added in version 3.8.

time.CLOCK_UPTIME_RAW_APPROX

  Like `CLOCK_UPTIME_RAW`, but the value is cached by the system at context switches and therefore has less accuracy.

  Availability: macOS >= 10.12.

  Added in version 3.13.

Наступна константа є єдиним параметром, який можна надіслати до `clock_settime()`.

time.CLOCK_REALTIME

  Real-time clock. Setting this clock requires appropriate privileges. The clock is the same for all processes.

  Availability: Unix.

  Added in version 3.3.

## Константи часового поясу

time.altzone

  Зсув місцевого часового поясу літнього часу в секундах на захід від UTC, якщо такий визначено. Це негативно, якщо місцевий часовий пояс на літній час знаходиться на схід від UTC (як у Західній Європі, включаючи Великобританію). Використовуйте це, лише якщо `денне світло` не дорівнює нулю. Див. примітку нижче.

time.daylight

  Ненульове значення, якщо визначено часовий пояс літнього часу. Див. примітку нижче.

time.timezone

  Зсув місцевого (не літнього) часового поясу в секундах на захід від UTC (негативний у більшості країн Західної Європи, додатний у США, нуль у Великобританії). Див. примітку нижче.

time.tzname

  Кортеж із двох рядків: перший — це назва місцевого часового поясу, який не працює на літній час, а другий — це назва місцевого часового поясу. Якщо часовий пояс літнього часу не визначено, другий рядок не слід використовувати. Див. примітку нижче.

Примітка

For the above Timezone constants (`altzone`, `daylight`, `timezone`, and `tzname`), the value is determined by the timezone rules in effect at module load time or the last time `tzset()` is called and may be incorrect for times in the past. It is recommended to use the `tm_gmtoff` and `tm_zone` results from `localtime()` to obtain timezone information.

Дивись також

Модуль `datetime`

  Більш об’єктно-орієнтований інтерфейс для дат і часу.

Модуль `locale`

  Послуги інтернаціоналізації. Параметр локалі впливає на інтерпретацію багатьох специфікаторів формату в `strftime()` і `strptime()`.

Модуль `calendar`

  Загальні функції, пов’язані з календарем. `timegm()` є зворотним до `gmtime()` з цього модуля.

Виноски

[1] (1,2,3)

The use of `%Z` is now deprecated, but the `%z` escape that expands to the preferred hour/minute offset is not supported by all ANSI C libraries. Also, a strict reading of the original 1982 RFC 822 standard calls for a two-digit year (`%y` rather than `%Y`), but practice moved to 4-digit years long before the year 2000. After that, RFC 822 became obsolete and the 4-digit year has been first recommended by RFC 1123 and then mandated by RFC 2822, with RFC 5322 continuing this requirement.