Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2011 16:27:50

sinopteek
От:
Зарегистрирован: 2009-09-28
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Странное поведение времени datetime

Пишу софтину, которая в автоматическом режиме обрабатывает записи, одним из параметров в записи является время.
Столкнулся со странным поведением при форматирования.
Для иллюстрации написал простенький пример.

a = datetime.datetime.now()
for i in range(10):
print a.microsecond
b = ('%02d:%02d:%02f' % (a.hour,a.minute,1.*a.second+a.microsecond/10e6))
c = ('%d-%02d-%02d' % (a.year,a.month,a.day))
print c, b
time.sleep(0.1)
Собственно, что удивительно: значение a.microsecond не меняется, а вот сумма(точнее правая её составляющая) при первом вычислении получается больше, чем должна быть в 10 раз. Что приводит в некоторых случаях, к тому, что количество секунд может быть больше 60 :D. Что собственно совсем не радует. Не заметил бы, но периодически стало вываливаться при записи в базу.
2011-04-05 16:43:43.865000
865000
2011-04-05 16:43:43.086500
865000
2011-04-05 16:43:43.086500
865000
....
Как решать пока не нашёл.



Офлайн

#2 Апрель 5, 2011 17:23:35

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Странное поведение времени datetime

Ваша ошибка не воспроизводится. Все работает как и ожидалось.
За исключением того что микросекунда — это 1e-6 а не 1e-7



Офлайн

#3 Апрель 6, 2011 13:50:34

sinopteek
От:
Зарегистрирован: 2009-09-28
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Странное поведение времени datetime

Андрей Светлов
Ваша ошибка не воспроизводится. Все работает как и ожидалось.
Может что-то специфичное? У меня 2.6.6(win32) на win7x64.
Андрей Светлов
За исключением того что микросекунда — это 1e-6 а не 1e-7
Точно, сразу не заметил =)

p.s. Забавно: решил проверить на старом питоне(2.5.4) - работает без ошибок. Решил перепроверить на том, на котором возникала проблема - сегодня всё работает :/



Отредактировано (Апрель 6, 2011 14:08:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version