canaille-globuzma/canaille/backends/sql/utils.py

20 lines
512 B
Python
Raw Normal View History

import datetime
from sqlalchemy import DateTime
from sqlalchemy import TypeDecorator
class TZDateTime(TypeDecorator):
impl = DateTime
cache_ok = True
def process_bind_param(self, value, dialect):
if value is not None:
value = value.astimezone(datetime.timezone.utc).replace(tzinfo=None)
return value
def process_result_value(self, value, dialect):
if value is not None:
value = value.replace(tzinfo=datetime.timezone.utc)
return value