Package stocks3 :: Package share :: Module dateandtime
[hide private]
[frames] | no frames]

Module dateandtime

source code

Модуль содержит дополнительные функции для работы с датой и временем.


Author: Zasimov Alexey

Functions [hide private]
 
tzset(tz)
Устанавливает временную зону tz.
source code
 
with_tz(tz, func, *args)
Запускает функцию func в окружении с установленной временной зоной tz.
source code
 
delta_to_str(td, format="%H:%M:%S")
Принимает на вход дельту td и конвертирует её в строку.
source code
 
_to_unixtime(dt) source code
 
to_unixtime(dt, tz=None)
Преобразует дату dt в unixtime.
source code
 
str_to_timedelta(time_str)
Преобразует строчку вида XXhXXmXXs в timedelta.
source code
Variables [hide private]
  __email__ = "zasimov-a@yandex-team.ru"
  timedelta_re = re.compile(r'((?P<hours>\d+?)h)?((?P<minutes>\d...
Function Details [hide private]

tzset(tz)

source code 

Устанавливает временную зону tz.

Parameters:
  • tz - Человеческое имя зона (например, Europe/Moscow).

with_tz(tz, func, *args)

source code 

Запускает функцию func в окружении с установленной временной зоной tz.

>>> with_tz("Asia/Nicosia", lambda x: time.timezone, None)
-7200
Parameters:
  • tz - Человеческое имя зоны (например, Europe/Moscow).
  • func - Функция для запуска.
  • args - Аргументы для функции func.

delta_to_str(td, format="%H:%M:%S")

source code 

Принимает на вход дельту td и конвертирует её в строку.

Формат берется из переменной format, в которой допускается использовать:

  • %H - часы;
  • %M - минуты;
  • %S - секунды;
  • %% - %;

Эти параметры выбраны для совместимости с time.strftime.

Пример работы:

>>> t1 = datetime.today()
>>> t2 = datetime.today() + timedelta(hours=2, minutes=12, seconds=13)
>>> d = t2 - t1
>>> delta_to_str(d)
'2:12:13'
>>> delta_to_str(d, "%S:%M:%H")
'13:12:2'
>>> delta_to_str(d, "%H%Z%%")
'2%Z%'
>>> delta_to_str(d, "%S%")
'13%'
Parameters:
  • td (timedelta из модуля datetime) - Делта.
  • format (строка формата) - Формат результата.

to_unixtime(dt, tz=None)

source code 

Преобразует дату dt в unixtime.

Пример работы:

>>> tzset("Europe/Moscow")
>>> dt = datetime.strptime("07.07.2011 17:53:12", "%d.%m.%Y %H:%M:%S")
>>> to_unixtime(dt)
1310046792.0
>>> to_unixtime(dt, "Europe/London")
1310057592.0
Parameters:
  • dt (datetime) - Дата и время.
  • tz (человеческое имя временной зоны) - Временная зона, в которой задано время dt. Если время считается заданным в системной временной зоне.

str_to_timedelta(time_str)

source code 

Преобразует строчку вида XXhXXmXXs в timedelta.

Пример:

>>> dt = datetime.strptime("07.07.2011 17:53:12", "%d.%m.%Y %H:%M:%S")
>>> n = dt - str_to_timedelta("24h2m1s")
>>> n.strftime("%d.%m.%Y %H:%M:%S")
'06.07.2011 17:51:11'
Parameters:
  • time_str - Строчка с timedelta.

Variables Details [hide private]

timedelta_re

Value:
re.compile(r'((?P<hours>\d+?)h)?((?P<minutes>\d+?)m)?((?P<seconds>\d+?\
)s)?')