GAE(Python with ndb library)で保存された日付に関する奇妙な結果。 Webフォームからの受信文字列は、%a%m /%d /%y形式(3/3/17金)です。 これはdatetime.strptimeで解析され、日付の値を取得します。 DateProperty()フィールドに保存されるとき、その値は一貫して前日の16:00:00.000 PSTになります。DatePropertyの日付エラー()ndb経由で保存
postDate = datetime.datetime.strptime(self.request.get('date-'+
hashed_id),'%a %m/%d/%y')
logging.info('postDate as Date: %s',postDate)
postDateStr = datetime.datetime.strftime(postDate,'%D')
logging.info('postDateStr: %s',postDateStr)
thisPost = ScheduledPost(id = postID,
...
postDate = postDate,
postDateStr = postDateStr
)
ログの結果:
postDate as Date: 2017-03-03 00:00:00
postDateStr: 03/03/17
これまでのところは良い、右?データストアインターフェイスでは、そのレコードには次の情報が表示されます。
PostDate: 2017-03-02 (16:00:00:000 PST)
PostDateStr: 03/03/17
ワークステーションは太平洋時間帯ですが、日付が間違っていることを確認しているようです。今日は3/3/17と仮定 -
today = dt.datetime.now()
ScheduledPost.query(ScheduledPost.postDate == today).fetch()
返されたレコードがありません。
日付を文字列として保存し、日付を文字列として照会することは、このプロジェクトの回避策です。誰かがこれを見たことがあると思っただけです。助言?
update: 'code'として定義された2番目のフィールドが追加されました。DateTimeProperty() - 同じエラー値が保存されました。 –