On Fri, 8 Sep 2006, Ken Kinder wrote:

Is there a standard and reliable way of converting a PyLucene Date
object into a python standard library date object?

Indeed there is with the attached path fixing the bug of using PyLong_FromLong instead of PyLong_FromLongLong for long long values in getTime() which was truncating the returned values. This patch is also checked in.

from PyLucene import Date
from datetime import datetime
d = Date()
d
<Date: Fri Sep 08 14:01:51 PDT 2006>
dt = datetime.utcfromtimestamp(d.getTime() / 1000.0)
str(dt)
'2006-09-08 21:01:51.753000'   # a GMT value: 14:01 PDT is 21:01 GMT

If you want to express the python datetime in a specific timezone as well, you can use datetime.fromtimestamp(d.getTime() / 1000.0, tzinfo) as documented here: http://www.python.org/doc/2.4.3/lib/datetime-datetime.html#l2h-1887

I hope this helps

Andi..
Index: java.cpp
===================================================================
--- java.cpp    (revision 277)
+++ java.cpp    (working copy)
@@ -3167,7 +3167,7 @@
     long long time;
 
     OBJ_CALL(time = self->object->getTime());
-    return PyLong_FromLong(time);
+    return PyLong_FromLongLong(time);
 }
 
 static PyObject *j_date_setTime(j_date *self, PyObject *arg)
@@ -3255,7 +3255,7 @@
     long long time;
 
     OBJ_CALL(time = self->object->getTimeInMillis());
-    return PyLong_FromLong(time);
+    return PyLong_FromLongLong(time);
 }
 
 static PyObject *j_calendar_setTimeInMillis(j_calendar *self, PyObject *arg)
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to