diff --git a/sc2reader/engine/plugins/gameheart.py b/sc2reader/engine/plugins/gameheart.py index f2af2e82..c7994f4b 100644 --- a/sc2reader/engine/plugins/gameheart.py +++ b/sc2reader/engine/plugins/gameheart.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone from sc2reader.utils import Length, get_real_type from sc2reader.objects import Observer, Team from sc2reader.engine.events import PluginExit @@ -65,8 +65,9 @@ def handleInitGame(self, event, replay): replay.real_length = Length( seconds=int(replay.game_length.seconds / GAME_SPEED_FACTOR[replay.speed]) ) - replay.start_time = datetime.utcfromtimestamp( - replay.unix_timestamp - replay.real_length.seconds + replay.start_time = datetime.fromtimestamp( + replay.unix_timestamp - replay.real_length.seconds, + timezone.utc ) def fix_events(self, replay, start_frame): diff --git a/sc2reader/resources.py b/sc2reader/resources.py index 7bb3b9a9..855bb27f 100644 --- a/sc2reader/resources.py +++ b/sc2reader/resources.py @@ -1,5 +1,5 @@ from collections import defaultdict, namedtuple -from datetime import datetime +from datetime import datetime, timezone import hashlib from xml.etree import ElementTree import zlib @@ -411,7 +411,10 @@ def load_details(self): self.windows_timestamp = details["file_time"] self.unix_timestamp = utils.windows_to_unix(self.windows_timestamp) - self.end_time = datetime.utcfromtimestamp(self.unix_timestamp) + self.end_time = datetime.fromtimestamp( + self.unix_timestamp, + timezone.utc + ) # The utc_adjustment is either the adjusted windows timestamp OR # the value required to get the adjusted timestamp. We know the upper @@ -429,8 +432,9 @@ def load_details(self): seconds=self.length.seconds // GAME_SPEED_FACTOR[self.expansion].get(self.speed, 1.0) ) - self.start_time = datetime.utcfromtimestamp( - self.unix_timestamp - self.real_length.seconds + self.start_time = datetime.fromtimestamp( + self.unix_timestamp - self.real_length.seconds, + timezone.utc ) self.date = self.end_time # backwards compatibility @@ -1088,7 +1092,10 @@ def __init__(self, summary_file, filename=None, lang="enUS", **options): else: self.expansion = "" - self.end_time = datetime.utcfromtimestamp(self.parts[0][8]) + self.end_time = datetime.fromtimestamp( + self.parts[0][8], + timezone.utc + ) self.game_speed = LOBBY_PROPERTIES[0xBB8][1][self.parts[0][0][1].decode("utf8")] self.game_length = utils.Length(seconds=self.parts[0][7]) self.real_length = utils.Length( @@ -1096,8 +1103,9 @@ def __init__(self, summary_file, filename=None, lang="enUS", **options): self.parts[0][7] / GAME_SPEED_FACTOR[self.expansion][self.game_speed] ) ) - self.start_time = datetime.utcfromtimestamp( - self.parts[0][8] - self.real_length.seconds + self.start_time = datetime.fromtimestamp( + self.parts[0][8] - self.real_length.seconds, + timezone.utc ) self.load_map_info()