4

私は持っています...

entity = simplejson.dumps({"a":unicode(datetime.datetime.utcnow())})

(ユニコードに変換された)日時を再び日時に戻すにはどうすればよいですか?

私が次のようなことができるように...

entity2 = simplejson.loads(entity)
#your answer here..
add5 = entity2["a"] + datetime.timedelta(minutes=5)

ありがとう!

4

2 に答える 2

7
DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'

シリアル化する前に、次のことを行ってください。

time = datetime.strftime(time, DATETIME_FORMAT)

シリアル化を解除した後、次の手順を実行します。

time = datetime.strptime(time, DATETIME_FORMAT)

例:

>>> from datetime import datetime

>>> DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'

>>> time = datetime.now()
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45, 646302)

>>> time = time.strftime(DATETIME_FORMAT)
>>> time
'2011-05-05 03:01:45'

>>> import json

>>> time = json.loads(json.dumps(time))
>>> time
'2011-05-05 03:01:45'

>>> time = datetime.strptime(time, DATETIME_FORMAT)
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45)

これがややエレガントでない場合は、カスタムのjsonエンコーダー/デコーダーを検討してください。私は個人的にデフォルトのjsonパッケージのものを試しましたが、不可解なエラーメッセージで髪の毛を抜くことをあきらめました。この方法をとる場合は、サードパーティのjsonパッケージをお勧めします。

于 2011-05-05T07:08:38.653 に答える
2

datetime.datetime.strptimeを使用します。

dt = datetime.datetime.strptime(entity2['a'], '%Y-%m-%d %H:%M:%S.%f')
于 2011-05-05T07:08:38.640 に答える