strptime and microseconds
mathieu
mathieu.malaterre at gmail.com
Thu Oct 18 12:46:16 EDT 2007
On Oct 18, 6:36 pm, mathieu <mathieu.malate... at gmail.com> wrote:
> On Oct 18, 6:00 pm, mathieu <mathieu.malate... at gmail.com> wrote:
>
>
>
> > Hi there,
>
> > I am trying to use strptime to parse my microseconds but I was not
> > able the documentation for it. The only list I found was:
>
> > http://docs.python.org/lib/module-time.html
>
> > So I can get seconds with %S, but nowhere is there a microsecond
> > symbol...
>
> > Thanks for pointer to doc,
> > -Mathieu
>
> > s1 = "20070619"
> > s2 = "150348.62"
> > s = s1+s2
> > d = datetime(*strptime(s, "%Y%m%d%H%M%S.%?"))
>
> Getting closer...
>
> s1 = "20070619"
> s2 = "115344.51"
> s3 = "115445.123456"
>
> ms2 = eval(s2) % 1
> mms2 = int(ms2 * 1000000 + 0.5)
> ms3 = eval(s3) % 1
> mms3 = int(ms3 * 1000000 + 0.5)
>
> s = s1 + s2
> d1 = datetime(*strptime(s[:12], "%Y%m%d%H%M%S")[0:6])
> d1.replace(microsecond = mms2)
> #print d1.microsecond
>
> s = s1 + s3
> d2 = datetime(*strptime(s[:12], "%Y%m%d%H%M%S")[0:6])
> d2.replace(microsecond = mms3)
> #print d2.microsecond
>
> d = d2 - d1
> print d.seconds
> print d.microseconds
>
> why would d.microseconds be 0 ??
>
> Thanks,
> -Mathieu
D'oh !
Ok final version is simply:
s1 = "20070619"
s2 = "115344.51"
s3 = "115446.123456"
ms2 = eval(s2) % 1
mms2 = int(ms2 * 1000000 + 0.5)
ms3 = eval(s3) % 1
mms3 = int(ms3 * 1000000 + 0.5)
s = s1 + s2
d1 = datetime(*strptime(s[:14], "%Y%m%d%H%M%S")[0:6])
d1 = d1.replace(microsecond = mms2)
#
s = s1 + s3
d2 = datetime(*strptime(s[:14], "%Y%m%d%H%M%S")[0:6])
d2 = d2.replace(microsecond = mms3)
#
d = d2 - d1
print d.seconds
print d.microseconds
sorry for the noise :))
-Mathieu
More information about the Python-list
mailing list