RethinkDB ist eine wunderbare und sehr praktische NoSQL-Datenbank-Engine. Ich suche nach der besten Möglichkeit, Python-Datetime-Objekte einzufügen. RethinkDB streut UTC-Zeitstempel, also habe ich eine Lösung gefunden, um mein Datetime-Objekt in das richtige Format zu konvertieren.Was ist der beste Weg, Python Datetime in rethinkdb einzufügen?
Ich benutze diese litle Funktion meines Datetime-Objekt in some RethinkDB verstehen zu konvertieren:
import calendar
from datetime import datetime
import rethinkdb as r
def datetime_to_epoch_time(dt):
timestamp = calendar.timegm(dt.utctimetuple())
return r.epoch_time(timestamp)
title = u'foobar'
published_at = '2014-03-17 14:00'
# firts I convert 2014-03-17 14:00 to datetime
dt = datetime.strptime(published_at, '%Y-%m-%d %H:%M')
# then I store the result
r.table('stories').insert({
'title': title,
'published_at': datetime_to_epoch_time(dt),
}).run()
Meine aktuelle Zeitzone CET (GMT + 2 Stunden) Ist das eine gute Lösung meiner Daten in rethinkdb zum Speichern oder eine bessere Lösung existiert?
Danke für Ihre Hilfe
Ich vermute, dass Sie die falsche Zeit in der Datenbank sind zu speichern. Die Zeile 'dt = datetime.strptime (meta ['published_at'], '% Y-% m-% d% H:% M') führt zu einem Datum/Uhrzeit-Objekt, das keine Zeitzone ist, da Sie das nicht angegeben haben Zeitzone überall. Ist es in CET? Ist es in UTC? Was wird 'dt.utctimetuple()' angesichts dieser Ambiguität zurückgeben? Wenn Sie mit Zeitzonen arbeiten, ist es am besten, immer mit zeitzonenbewussten Datetime-Objekten zu arbeiten. Für weitere Details, werfen Sie einen Blick auf [pytz] (http://pytz.sourceforge.net) – CadentOrange
+1 für den obigen Kommentar - immer speichern Sie Ihre Datumsangaben in einem Format die Zeitzone Informationen erhalten bleibt. Selbst wenn Sie nicht mit Mehrländerdatensätzen arbeiten, kann Sommerzeit zu Problemen führen. –
Danke, jetzt verstehe ich die Bedeutung der Zeitzone in Datetime. – k3z