Форум сайта python.su
0
Излазила модули calendar.py и datetime.py, не могу разобраться. Может кто-то уже использовал функции нахождения количества дней между датами или наоборот нахождения даты на некоторое число дней раньше от данной? И вообще, я хочу работать с датами в привычном формате дд.мм.гггг! Кто может подсказать?
Офлайн
1
в datetime есть timedelta
сделать просто вычитание одного datetime объекта из другого не пробовали?
Офлайн
0
bialixне пробовала, потому что у меня даты текстового типа…….. а чтобы преобразовать в datetime дату нужно разбивать (насколько я поняла) на вид гггг, ммм, д……… нет чего-нибудь проще и удобнее?
сделать просто вычитание одного datetime объекта из другого не пробовали?
Офлайн
10
Если тебе нужно преобразовать дату текстого типа в time tuple, ты можешь использовать функцию time.strptime, вторым аргументом являеться шаблон твоей строки. То бишь у тебя для дд.мм.гггг это будет “%d%m%Y”.
Офлайн
1
proDiva,
>>> import datetime
>>> import time
>>> s2d = lambda s, format: datetime.datetime.fromtimestamp(time.mktime(time.strptime(s, format)))
>>> d0 = s2d(“8.10.2007”, “%d.%m.%Y”)
>>> d1 = s2d(“31.12.2007 23:59”, “%d.%m.%Y %H:%M”)
>>> d0
<<< datetime.datetime(2007, 10, 8, 0, 0)
>>> dt = d1 - d0
>>> dt
<<< datetime.timedelta(84, 86340)
>>> dt.days
<<< 84
P.S. С датами меньше 01.01.1901 strptime не работает
Отредактировано (Окт. 8, 2007 12:47:20)
Офлайн
14
Макс Ищенко на последнем exception упомянул о babel - хорошей библиотеке для локализации.
Помимо всего прочего там есть работа с датами/временем
parse_date, parse_datetime etc.
Офлайн
1
Это лишняя зависимость. Если нужен i18n и для этого используется вавилон, то это “бесплатно”. Здесь же можно вполне обойтись пакетами из stdlib.
Офлайн
0
j2a
Спасибо, пример лучше не бывает!
Офлайн
0
Всем привет. У меня тут проблемка возникла. Вот код:
import datetime
myVar = datetime.datetime.today () - datetime.timedelta(weeks=4)
Как мне красиво, не переводя в стрингу и не парся её, из переменной myVar вытянуть год, месяц, неделю?
Офлайн
0
myVar.year, myVar.month, myVar.isocalendar()
Отредактировано (Янв. 21, 2008 17:32:58)
Офлайн