mirror of https://github.com/borgbackup/borg.git
use safe parse_timestamp to parse timestamps, fixes #2994
also: refactor so it is possible to get tz-unaware datetime objects from parse_timestamp.
This commit is contained in:
parent
eebb117349
commit
7996a87357
|
@ -166,7 +166,7 @@ class Manifest:
|
|||
|
||||
@property
|
||||
def last_timestamp(self):
|
||||
return datetime.strptime(self.timestamp, ISO_FORMAT)
|
||||
return parse_timestamp(self.timestamp, tzinfo=None)
|
||||
|
||||
@classmethod
|
||||
def load(cls, repository, operations, key=None, force_tam_not_required=False):
|
||||
|
|
|
@ -10,10 +10,13 @@ def to_localtime(ts):
|
|||
return datetime(*time.localtime((ts - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds())[:6])
|
||||
|
||||
|
||||
def parse_timestamp(timestamp):
|
||||
def parse_timestamp(timestamp, tzinfo=timezone.utc):
|
||||
"""Parse a ISO 8601 timestamp string"""
|
||||
fmt = ISO_FORMAT if '.' in timestamp else ISO_FORMAT_NO_USECS
|
||||
return datetime.strptime(timestamp, fmt).replace(tzinfo=timezone.utc)
|
||||
dt = datetime.strptime(timestamp, fmt)
|
||||
if tzinfo is not None:
|
||||
dt = dt.replace(tzinfo=tzinfo)
|
||||
return dt
|
||||
|
||||
|
||||
def timestamp(s):
|
||||
|
|
Loading…
Reference in New Issue