From bad6d8613a05257a5171f6aa7c7e8f18226d615c Mon Sep 17 00:00:00 2001 From: Aryn <63111101+arynyklas@users.noreply.github.com> Date: Sun, 24 Apr 2022 07:01:14 +0600 Subject: [PATCH] Fix datetime serialization error on Windows (#880) * fix #349 * fix #349 (2) --- aiogram/types/fields.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/aiogram/types/fields.py b/aiogram/types/fields.py index d7a1d8ca..a0adea65 100644 --- a/aiogram/types/fields.py +++ b/aiogram/types/fields.py @@ -1,6 +1,7 @@ import abc import datetime import weakref +import sys __all__ = ('BaseField', 'Field', 'ListField', 'DateTimeField', 'TextField', 'ListOfLists', 'ConstField') @@ -168,8 +169,13 @@ class DateTimeField(Field): out: datetime """ - def serialize(self, value: datetime.datetime): - return round(value.timestamp()) + if sys.platform == "win32": + def serialize(self, value: datetime.datetime): + return round((value - datetime.datetime(1970, 1, 1)).total_seconds()) + + else: + def serialize(self, value: datetime.datetime): + return round(value.timestamp()) def deserialize(self, value, parent=None): return datetime.datetime.fromtimestamp(value)