2015-04-06 4 views
0

Когда я добавляю order в мой адрес DB, хотел бы включить время, которое вы укажете как UTC.Добавление и возврат времени UTC с использованием PYTZ

ts = time.time() 
utc = pytz.utc 
orderDateUTC = datetime.utcfromtimestamp(ts).replace(tzinfo=utc) 

return add_order_to_db(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus, orderItems) 

Когда я добавить date к DB, я добавляю его в качестве UTC, а затем попытаться преобразовать его обратно в local time незадолго до возвращения его пользователю.

add_order_to_db (...)

def add_order_to_db(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus, orderItems): 

    receivedOrder = ORDER(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus) 
    with contextlib.closing(DBSession()) as session: 
     try: 
      session.add(receivedOrder) 
      session.commit() 
     except exc.SQLAlchemyError, error: 
      session.rollback() 
      raise_database_error(error) 
     else: 
      au_tz = timezone('Australia/Sydney') 
      au_dt = au_tz.normalize(orderDateUTC.astimezone(au_tz)) 
      receivedOrder.ORDERSDATE = au_dt 
      order = Order(receivedOrder, 'true') 
      return jsonify(data=order.serialize()) 

сериализации()

def serialize(self):     
      return {      
       'orderDate' : self.ORDERSDATE                                 
       } 

ORDERSDATE определяется как:

ORDERSDATE = Column(DateTime, nullable=False) 

Вопрос заключается в том, что time не возвращается обратно должным образом.

returned output и данные в DB является: orderDate: "Mon, 06 Apr 2015 01:13:00 GMT"

Однако мне нужно returned output быть orderDate: "Mon, 06 Apr 2015 11:13:00 GMT"

Я считаю, что если я вернусь return str(au_dt), я получаю правильный вывод, но в другой форме: 2015-04-06 11:13:37.461000+10:00

ответ

0

Однако мне нужно возвращаемый выход быть ORDERDATE: "пн, 6 апреля 2015 11:13:00 GMT"

Неверный вариант. Вам не нужно, если верно следующее:

как

Возвращенный выход и данные в БД: ORDERDATE: «пн, 6 апреля 2015 1:13:00 GMT»

и

Я считаю, что если я вернусь возвратный ул (au_dt), я получаю правильный выход, но в другой форме: 2015-04-06 11: 13: 37,461000 + 10: 00

являются же время:

local time = utc time + utc offset 
    11:13 = 01:13 + 10