Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: How to get milliseconds when substructing datetime objects?

Thread Tools

Re: How to get milliseconds when substructing datetime objects?

Gabriel Genellina
Posts: n/a
En Wed, 12 Dec 2007 11:40:24 -0300, Dmitri O.Kondratiev
<(E-Mail Removed)> escribió:

> Please help to find simple solutiion for measuring times of operations
> with
> millisecond precision.
> For this I am trying to use datetime() objects:
> import time
> import datetime
> def dreamTime(secs):
> t1 =
> time.sleep(secs)
> t2 =
> dt = t2 - t1
> print "Start time: "+str(t1)
> print "Stop time: "+str(t2)
> print "Dream time sec: "+str(dt)
> """
> # The following code results in errors like:
> # AttributeError: 'datetime.timedelta' object has no attribute
> 'second'
> """
> dts = dt.second
> dtmicro = dt.microsecond
> dtmilli = dts * 1000 + dtmicro / float(1000)
> dts2 = dtmilli / float(1000)
> print "Dream Millies: "+str(dtmilli)
> print "Dream Seconds, again: "+str(dts2)

Reading the docs at you
can see that timedelta objects have a "seconds" attribute (not "second").

Ok, and how do you know that in the first place? There are several ways
you can get this information from Python itself, just open the interpreter
and see:

py> import datetime
py> dt=t2-t1
py> dt
datetime.timedelta(0, 5, 969000)

In case you didn't know what type dt is:

py> type(dt)
<type 'datetime.timedelta'>
py> repr(dt)
'datetime.timedelta(0, 5, 969000)'

Now you can now look for "timedelta" inside the Help files.
A quick way to enumerate attributes is to use dir():

py> dir(dt)
['__abs__', '__add__', '__class__', ......, '__sub__',
'days', 'max', 'microseconds', 'min', 'resolution', 'seconds']

Look at 'seconds' there. Another useful function is vars(), but doesn't
work for this kind of object; just as an example, I'll show vars(datetime):

py> vars(dt)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: vars() argument must have __dict__ attribute
py> vars(datetime)
{'timedelta': <type 'datetime.timedelta'>, 'MAXYEAR': 9999, 'datetime':
<type 'd
atetime.datetime'>, 'date': <type ''>, 'datetime_CAPI':
object at 0x009BA290>, 'tzinfo': <type 'datetime.tzinfo'>, 'time': <type
me.time'>, 'MINYEAR': 1, '__name__': 'datetime', '__doc__': 'Fast
of the datetime type.'}

Using the built-in help system:

py> help(dt)
Help on timedelta object:

class timedelta(__builtin__.object)
| Difference between two datetime values.
| Methods defined here:
| __abs__(...)
| x.__abs__() <==> abs(x)
| [...several other methods...]
| ----------------------------------------------------------------------
| Data descriptors defined here:
| days
| Number of days.
| microseconds
| Number of microseconds (>= 0 and less than 1 second).
| seconds
| Number of seconds (>= 0 and less than 1 day).

You can see "seconds" there too.
help(datetime.timedelta) or help("datetime.timedelta") work too.

Also, many editors/IDEs have an autocomplete feature: after typing d t .
the editor may show a list with all known attributes to choose the desired

Gabriel Genellina

Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
[2.4.4] creating a datetime.datetime from an XML xs:dateTime Martin Python 0 12-27-2008 08:08 PM
mx.DateTime to datetime.datetime mp Python 1 07-28-2006 10:57 PM
datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ? Christos TZOTZIOY Georgiou Python 3 09-13-2003 10:44 AM
RE: datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ? Tim Peters Python 0 09-09-2003 12:57 AM