Преглед на файлове

use ISO_FORMAT* constants

Thomas Waldmann преди 7 години
родител
ревизия
eebb117349
променени са 3 файла, в които са добавени 7 реда и са изтрити 7 реда
  1. 1 1
      src/borg/helpers/manifest.py
  2. 1 1
      src/borg/helpers/parseformat.py
  3. 5 5
      src/borg/helpers/time.py

+ 1 - 1
src/borg/helpers/manifest.py

@@ -166,7 +166,7 @@ class Manifest:
 
 
     @property
     @property
     def last_timestamp(self):
     def last_timestamp(self):
-        return datetime.strptime(self.timestamp, "%Y-%m-%dT%H:%M:%S.%f")
+        return datetime.strptime(self.timestamp, ISO_FORMAT)
 
 
     @classmethod
     @classmethod
     def load(cls, repository, operations, key=None, force_tam_not_required=False):
     def load(cls, repository, operations, key=None, force_tam_not_required=False):

+ 1 - 1
src/borg/helpers/parseformat.py

@@ -137,7 +137,7 @@ class DatetimeWrapper:
 
 
     def __format__(self, format_spec):
     def __format__(self, format_spec):
         if format_spec == '':
         if format_spec == '':
-            format_spec = '%Y-%m-%dT%H:%M:%S'
+            format_spec = ISO_FORMAT_NO_USECS
         return self.dt.__format__(format_spec)
         return self.dt.__format__(format_spec)
 
 
 
 

+ 5 - 5
src/borg/helpers/time.py

@@ -2,6 +2,8 @@ import os
 import time
 import time
 from datetime import datetime, timezone
 from datetime import datetime, timezone
 
 
+from ..constants import ISO_FORMAT, ISO_FORMAT_NO_USECS
+
 
 
 def to_localtime(ts):
 def to_localtime(ts):
     """Convert datetime object from UTC to local time zone"""
     """Convert datetime object from UTC to local time zone"""
@@ -10,10 +12,8 @@ def to_localtime(ts):
 
 
 def parse_timestamp(timestamp):
 def parse_timestamp(timestamp):
     """Parse a ISO 8601 timestamp string"""
     """Parse a ISO 8601 timestamp string"""
-    if '.' in timestamp:  # microseconds might not be present
-        return datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%f').replace(tzinfo=timezone.utc)
-    else:
-        return datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S').replace(tzinfo=timezone.utc)
+    fmt = ISO_FORMAT if '.' in timestamp else ISO_FORMAT_NO_USECS
+    return datetime.strptime(timestamp, fmt).replace(tzinfo=timezone.utc)
 
 
 
 
 def timestamp(s):
 def timestamp(s):
@@ -98,7 +98,7 @@ def isoformat_time(ts: datetime):
     Format *ts* according to ISO 8601.
     Format *ts* according to ISO 8601.
     """
     """
     # note: first make all datetime objects tz aware before adding %z here.
     # note: first make all datetime objects tz aware before adding %z here.
-    return ts.strftime('%Y-%m-%dT%H:%M:%S.%f')
+    return ts.strftime(ISO_FORMAT)
 
 
 
 
 def format_timedelta(td):
 def format_timedelta(td):