1

を入力したGoogleAppEngineの日時プロパティがありx.date = datetime.datetime.now()ます。私は日付間で多くの比較を行っていますが、多くのデバッグを行った後、クライアントデバイスがPythonの日付よりも精度が低く、ひどい混乱を引き起こしたことがわかりました。

Pythonが生成するものは次のとおりです: 2012-08-28 21:36:13.158497withdatetime.datetime.now()ですが、私が欲しいのは2012-08-28 21:36:13.158000(最後の3つのゼロに注意してください)。

どうすればこれを達成できますか?(文字列などをフォーマットしようとしているのではないことに注意してください。日付オブジェクトをフォーマットしたいのです。)

1つの方法は、次のように、必要な精度で文字列にフォーマットすることだと思います。

dateString = date.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]

その後、日付オブジェクトに戻ります。しかし、もっと良い方法が必要です。

4

1 に答える 1

4
dt = dt.replace(microsecond = (dt.microsecond / 1000) * 1000)

これにより、最後の3桁が切り捨てられます。適切な丸めは、1000000マイクロ秒に丸められる可能性があるため、もう少し複雑です。

于 2012-08-28T23:48:36.853 に答える