2017-03-10 4 views
0

フラスコアプリをフラスコ - sqlalchemyでやっています。 クライアントから提供されたタイムスタンプでオブジェクトをdbに保存する必要があります。たとえば :フラスコ:タイムスタンプ付きのオブジェクトを保存する

2017-03-03T11:30:00+04:00

私は+4時間帯で、このタイムスタンプを保存する必要があります。モデル宣言は次のようになります。

class Appointment(db.Model): 
 

 
    __tablename__ = 'appointments' 
 

 
    id = Column(db.Integer, primary_key=True) 
 
    start_time = Column(db.DateTime(timezone=True), nullable=False)

をだからここに私はのstart_time属性を持っています。私はこのように私の任命オブジェクトを保存しよう:

new_appointment = Appointment() 
 
# at this line I convert string time to python datetime 
 
appointment_time = datetime.strptime(string_datetime[:len(string_datetime) - 3] +             string_datetime[len(string_datetime) - 2:], 
 
               '%Y-%m-%dT%H:%M:%S%z') 
 

 
new_appointment.start_time = appointment_time 
 
db.session.add(new_appointment) 
 
db.session.commit()

私はデシベルをチェック

、私のオブジェクトは(+6この場合には)私のサーバーのタイムゾーンで保存されます。私もタイムゾーンなしで保存しようとしましたが(タイムゾーン= False設定)、タイムスタンプの表示はなく、タイムスタンプは+6として保存されます。提供されたタイムゾーンでオブジェクトを強制的に保存するにはどうすればよいですか?

答えて

0

使用pyTZモジュール

また、あなたが

を扱う日時のタイムゾーンとこの興味深い article詳細問題通過することができUTC時間を取り、希望時間帯

from datetime import datetime 
from pytz import * 

eastern = timezone('US/Eastern') 
loc_dt = eastern.localize(datetime(2017, 10, 3, 7, 27, 0)) 
print loc_dt 

に変換

関連する問題