datetime in microseconds

mroeloffs at gmail.com mroeloffs at gmail.com
Mon Aug 20 10:17:03 EDT 2007


On Aug 20, 3:15 pm, John Machin <sjmac... at lexicon.net> wrote:
> On Aug 20, 9:52 pm, mroelo... at gmail.com wrote:
>
> > Hi I have a time in microseconds, for example 0x8C905CBA7F84AF4. I
> > want this to a normal view in hh:mm:ss DD:MM:YYYY. I tried with
> > datetime, but it only takes a max of 1000000 microseconds is there
> > another solution?
>
> Your question can be interpreted in two possible ways:
>
> 1. You have an interval or duration (independent of a calendar point)
> and you want to express it in years, months, days, hours, etc. This is
> not possible, due to the variable number of days in a month. The best
> that you can do is express it as days, hours, etc.
>
> >>> microsecs = 0x8C905CBA7F84AF4
> >>> secs = microsecs // 1000000 # or round to nearest if you prefer
> >>> mins, secs = divmod(secs, 60)
> >>> hrs, mins = divmod(mins, 60)
> >>> days, hrs = divmod(hrs, 24)
> >>> days, hrs, mins, secs
>
> (7326893L, 11L, 1L, 16L)
>
>
>
> 2. You want to know the (Gregorian) calendar point that is
> 0x8C905CBA7F84AF4 microseconds after some epoch. In this case you need
> to specify what the epoch is. Then you can try something like:
>
> >>> datetime.datetime.fromordinal(1) + datetime.timedelta(microseconds=microsecs
>
> )
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> OverflowError: date value out of range
>
> >>> # Whoops!
> >>> years_approx = days / 365.25
> >>> years_approx
> 20059.939767282682
>
> Hmmm, one of us seems to be missing something ...

Sorry,  sorry, sorry it was the wrong value, it should be
0xE0E6FAC3FF3AB2.




More information about the Python-list mailing list