Esto es lo que estoy tratando de hacer: el usuario envía una hora en pacific, una vez enviado utilizo .replace para establecer la zona horaria en Pacific.¿Por qué no appeagine auto-convertir datetime a UTC al llamar a put()
Pacific = time.USTimeZone(-8, "Pacific", "PST", "PDT")
addEvent.date = addEvent.date.replace(tzinfo=Pacific)
Una vez que haya configurado el tzinfo, lo haré. De acuerdo con la documentación pitón de google appengine que dice:
"If the datetime value has a tzinfo attribute, it will be converted to the UTC time zone for storage. Values come back from the datastore as UTC, with a tzinfo of None. An application that needs date and time values to be in a particular time zone must set tzinfo correctly when updating the value, and convert values to the timezone when accessing the value."
Sin embargo, cuando hago un put(), me sale el siguiente error:
WARNING 2012-10-06 21:10:14,579 tasklets.py:399] initial generator _put_tasklet(context.py:264) raised NotImplementedError(DatetimeProperty date can only support UTC. Please derive a new Property to support alternative timezones.) WARNING 2012-10-06 21:10:14,579 tasklets.py:399] suspended generator put(context.py:703) raised NotImplementedError(DatetimeProperty date can only support UTC. Please derive a new Property to support alternative timezones.)
Tenga en cuenta que estoy usando NDB
Ok, entonces después de hacer eso asumí que quizás NDB no lo convierta automáticamente en UTC. Así Luego trató de convertirlo a UTC usando el siguiente código:
class UTC(tzinfo):
def utcoffset(self, dt):
return timedelta(0)
def tzname(self, dt):
return str("UTC")
def dst(self, dt):
return timedelta(0)
y ahora sigo teniendo el mismo error incluso después de que convierte la hora del pacífico a la hora UTC y establecer el nombre tzinfo como "UTC".
Realmente podría necesitar un montón de ayuda aquí ... gracias!
ah tan simple! ¡Gracias! – iceanfire
realmente un ejemplo habría sido realmente útil. – Houman
Aquí hay un ejemplo: do timestamp = timestamp.replace (tzinfo = None) antes de establecer la Propiedad en timestamp. – Luca