Пишу софтину, которая в автоматическом режиме обрабатывает записи, одним из параметров в записи является время.
Столкнулся со странным поведением при форматирования.
Для иллюстрации написал простенький пример.
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
....
Как решать пока не нашёл.