[Python-Dev] datetime nanosecond support

Guido van Rossum guido at python.org
Wed Jul 25 03:46:43 CEST 2012


On Tue, Jul 24, 2012 at 5:58 PM, Vincenzo Ampolo
<vincenzo.ampolo at gmail.com> wrote:
> Hi all,
>
> This is the first time I write to this list so thank you for considering
> this message (if you will) :)

You're welcome.

> I know that this has been debated many times but until now there was no
> a real use case. If you look on google about "python datetime
> nanosecond" you can find more than 141k answer about that. They all say
> that "you can't due to hardware imprecisions" or "you don't need it"
> even if there is a good amount of people looking for this feature.

Have you read PEP 410 and my rejection of it
(http://mail.python.org/pipermail/python-dev/2012-February/116837.html)?
Even though that's about using Decimal for timestamps, it could still
be considered related.

> But let me explain my use case:
>
> most OSes let users capture network packets (using tools like tcpdump or
> wireshark) and store them using file formats like pcap or pcap-ng. These
> formats include a timestamp for each of the captured packets, and this
> timestamp usually has nanosecond precision. The reason is that on
> gigabit and 10 gigabit networks the frame rate is so high that
> microsecond precision is not enough to tell two frames apart.
> pcap (and now pcap-ng) are extremely popular file formats, with millions
> of files stored around the world. Support for nanoseconds in datetime
> would make it possible to properly parse these files inside python to
> compute precise statistics, for example network delays or round trip times.
>
> More about this issue at http://bugs.python.org/issue15443
>
> I completely agree with the YAGNI principle that seems to have driven
> decisions in this area until now but It is the case to reconsider it
> since this real use case has shown up?

Not every use case deserves an API change. :-)

First you will have to show how you'd have to code this *without*
nanosecond precision in datetime and how tedious that is. (I expect
that representing the timestamp as a long integer expressing a posix
timestamp times a billion would be very reasonable.)

I didn't read the entire bug, but it mentioned something about storing
datetimes in databases. Do databases support nanosecond precision?

-- 
--Guido van Rossum (python.org/~guido)


More information about the Python-Dev mailing list