объекты даты в Python не сохраняют понятие времени настенных часов. Если вы хотите взять объект даты и получить представление с точностью до миллисекунды, это будет все 0.
Модуль datetime пропускает миллисекунды и поддерживает микросекунды в своем форматировании. Поэтому, когда вы печатаете дату или время в интерпретаторе, это последнее поле - микросекунда. Если вам нужны миллисекунды, вы можете разделить это поле на 1000.
Вот пара примеров из сеанса интерпретатора Python 3.2b2. Здесь есть некоторые дополнительные вещи, чтобы вы могли увидеть основной маршрут, который я выбрал, чтобы добраться до отметки времени. Это не должно считаться заменой для чтения документов :
>>> x = datetime.datetime.today()
>>> y = datetime.date.today()
>>> x
datetime.datetime(2011, 2, 6, 8, 2, 9, 465714)
>>> y
datetime.date(2011, 2, 6)
>>> y.strftime('%Y-%m-%d.%f')
'2011-02-06.000000'
>>> x
datetime.datetime(2011, 2, 6, 8, 2, 9, 465714)
>>> str(x)
'2011-02-06 08:02:09.465714'
>>> x.microsecond
465714
>>> x.time()
datetime.time(8, 2, 9, 465714)
>>> x.time().microsecond/1000
465.714 # milliseconds and microseconds.
>>> int(x.time().microsecond / 1000)
465 # milliseconds
>>> s = '{:02d}:{:02d}:{:02d}.{:3d}'.format(r.hour, r.minute, r.second, int(r.microsecond / 1000), '2s')
>>> s
'08:02:09.465'