diff --git a/telethon/extensions/binaryreader.py b/telethon/extensions/binaryreader.py index 43f86dab..80b76f94 100644 --- a/telethon/extensions/binaryreader.py +++ b/telethon/extensions/binaryreader.py @@ -5,11 +5,15 @@ import os from datetime import datetime, timezone, timedelta from io import BufferedReader, BytesIO from struct import unpack +import time from ..errors import TypeNotFoundError from ..tl.alltlobjects import tlobjects from ..tl.core import core_objects +_EPOCH_NAIVE = datetime(*time.gmtime(0)[:6]) +_EPOCH = _EPOCH_NAIVE.replace(tzinfo=timezone.utc) + class BinaryReader: """ @@ -120,10 +124,7 @@ class BinaryReader: into a Python datetime object. """ value = self.read_int() - if value == 0: - return None - else: - return datetime.fromtimestamp(0, tz=timezone.utc) + timedelta(seconds=value) + return _EPOCH + timedelta(seconds=value) def tgread_object(self): """Reads a Telegram object."""