[英]How to convert an integer timestamp back to UTC datetime?
在iOS和我的Python GAE后端之间进行同步时,我想利用时间戳来获得一个干净的解决方案。
根据我的研究,这是创建可靠时间戳的最佳方式:
calendar.timegm((datetime.datetime.now()).utctimetuple())
我得到这样的整数: 1382375236
在后端时,我想另外保存从时间戳派生的last_updated
日期时间。 这是人类可读的,有助于快速检查。
def before_put(self):
self.last_updated = datetime.utcfromtimestamp(self.timestamp)
但是这会失败并出现错误:
TypeError: a float is required
以准确的方式解决这个问题的最佳方法是什么?
更新 :
在我的情况下,这给了我一个奇怪的日期:
>>> datetime.datetime.utcfromtimestamp(1382375236 / 1e3)
datetime.datetime(1970, 1, 16, 23, 59, 35, 236000)
更新2
整个模型是:
class Record(ndb.Model):
user = ndb.KeyProperty(kind=User)
record_date = ndb.DateProperty(required=True)
rating = ndb.IntegerProperty(required=True)
notes = ndb.TextProperty()
last_updated = ndb.DateTimeProperty(required=True)
timestamp = ndb.IntegerProperty(required=True)
def __repr__(self):
return '<record_date %r>' % self.record_date
def before_put(self):
self.last_updated = datetime.utcfromtimestamp(self.timestamp)
def after_put(self):
pass
def put(self, **kwargs):
self.before_put()
super(Record, self).put(**kwargs)
self.after_put()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.