2016-03-04 1 views
3

Voici ma situation: je stocker des datetime dans MSSQL, que je reçois dans mon application python via SQLAlchemy et sérialiser puis à travers Marshmallow comme ceci:court chemin pour sérialiser datetime avec la guimauve

class MyVisitSchema(Schema): 
    cafe = fields.Nested(CafeSchema) 
    started_at = fields.DateTime() 
    ended_at = fields.DateTime() 

    class Meta: 
     additional = ('duration',) 
     ordered = True 

Mais ici le problème: après la sérialisation, je reçois quelque chose comme "started_at": "1994-05-20T00:00:00+00:00" qui dit que UTC + 0, mais je stocke toutes mes dates dans DB sans informations de fuseau horaire, mais en UTC + 3.

Je sais que je peux utiliser fields.Method() pour modifier le fuseau horaire de sortie, mais cela ne semble pas pratique. Des idées pour faire fonctionner mon sérialiseur comme il se doit?)

Répondre

3

Trouvé des informations dans les documentaires officiels. Donc, mon problème peut être résolu en utilisant

started_at = fields.DateTime('%Y-%m-%dT%H:%M:%S+03:00')

hardcode un peu, mais il semble mieux que d'utiliser la fonction supplémentaire fields.Method()