我正在使用 Flask sqlalchemy 和 postgreSQL 并且顯示的日期時(shí)間有問題,在調(diào)查這個問題時(shí)我發(fā)現(xiàn)了另一個奇怪的事情:在隱身模式(chrome 瀏覽器選項(xiàng)卡)下創(chuàng)建數(shù)據(jù)庫條目會給出不同/錯誤的時(shí)間。編輯:它與隱身模式無關(guān),這兩種情況也發(fā)生在正常模式下。我還沒有弄清楚為什么。這是代碼:我更改了數(shù)據(jù)庫的默認(rèn)時(shí)區(qū):ALTER DATABASE postgres SET timezone TO 'Europe/Berlin';該模型:class User(UserMixin, Base): __tablename__ = 'users' date_added = Column(DateTime(timezone=True), nullable=False)我用來將日期時(shí)間添加到數(shù)據(jù)庫的方法:date_added=datetime.today()它在數(shù)據(jù)庫中的外觀(此時(shí)我的本地時(shí)間是 13:53:46):不在隱身模式下創(chuàng)建條目timestamp with time zone2019-02-01 13:53:46.73817+01在隱身模式下創(chuàng)建條目timestamp with time zone2019-02-01 12:53:46.73817+01這真的讓我擔(dān)心。這是錯誤的。即使我將日期時(shí)間對象轉(zhuǎn)換為本地時(shí)間。兩個條目同時(shí)完成,但顯示不同的結(jié)果,這怎么可能?同樣在 HTML 中查看這些日期時(shí),postgreSQL 不會應(yīng)用偏移量,因此第一個日期看起來正確,但第二個日期是錯誤的。最初我只是想找到一種方法來在歐洲/柏林存儲所有日期時(shí)間對象并在歐洲/柏林時(shí)間返回它們,所以我不必將 UTC 轉(zhuǎn)換為歐洲/柏林,但現(xiàn)在我認(rèn)為出現(xiàn)了可怕的錯誤。我也到處都仔細(xì)檢查了我的代碼,我沒有使用其他方法來操作日期時(shí)間對象。編輯每次用戶登錄時(shí),我都會保存一個日期時(shí)間。目前我在非隱身模式下嘗試過。我的本地時(shí)間是14:13:33但它保存到數(shù)據(jù)庫中: 2019-02-01 13:13:33.804339+01。這怎么可能?我知道它不能是隨機(jī)的,但現(xiàn)在看起來它的保存時(shí)間是隨機(jī)的,有時(shí)是帶有偏移量的 UTC,有時(shí)是帶有偏移量的歐洲/柏林。編輯我仔細(xì)檢查了所有有問題的表格SHOW timezone;,它們都正確返回Europe/Berlin
添加回答
舉報(bào)
0/150
提交
取消