Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime, time
- from ndb import model, tasklets
- EPOCH = datetime.datetime.utcfromtimestamp(0)
- OFFSET = datetime.timedelta(seconds=7 * 60 * 60) # Offset between PDT and UTC
- def to_utc(value):
- return value + OFFSET
- def from_utc(value):
- return value - OFFSET
- class UtcDateTimeProperty(model.DateTimeProperty):
- def _db_set_value(self, v, p, value):
- value = to_utc(value)
- super(UtcDateTimeProperty, self)._db_set_value(v, p, value)
- def _db_get_value(self, v, p):
- value = super(UtcDateTimeProperty, self)._db_get_value(v, p)
- value = from_utc(value)
- return value
- class Record(model.Model):
- utc = UtcDateTimeProperty()
- def main():
- # Disable caching.
- ctx = tasklets.get_context()
- ctx.set_cache_policy(False)
- ctx.set_memcache_policy(False)
- now = datetime.datetime.now()
- print 'now =', now
- r = Record(utc=now)
- print 'r =', r
- r.put()
- print 'r.key =', r.key
- print r._to_pb()
- print 'posix time * 1000000 =', hex(int(time.time() * 1000000))
- q = r.key.get()
- assert q is not r # Actually read from datastore
- print 'q =', q
- print 'q.utc =', q.utc
- assert q.utc == now
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment