mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-14 16:11:43 +00:00
use safe parse_timestamp to parse timestamps, fixes #2994
also: refactor so it is possible to get tz-unaware datetime
objects from parse_timestamp.
(cherry picked from commit 7996a87357
)
This commit is contained in:
parent
457f5ceb30
commit
a9aa3c5f34
1 changed files with 6 additions and 3 deletions
|
@ -318,7 +318,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):
|
||||
|
@ -523,10 +523,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…
Add table
Reference in a new issue