Pārlūkot izejas kodu

archives list: use iso8601 timestamp format with --json

like yyyy-mm-ddThh:mm:ss - no tz yet, this likely needs more refactoring
to tz aware and utc datetime objects everywhere, currently there are
naive datetime objects and also localtime at quite some places.

(cherry picked from commit b64561fe6f067ec28ccd2b89d00f8e38e3397814)
Thomas Waldmann 7 gadi atpakaļ
vecāks
revīzija
65940be21a
1 mainītis faili ar 12 papildinājumiem un 3 dzēšanām
  1. 12 3
      src/borg/helpers.py

+ 12 - 3
src/borg/helpers.py

@@ -1660,6 +1660,7 @@ class ArchiveFormatter(BaseFormatter):
         if self.json:
         if self.json:
             self.item_data = {}
             self.item_data = {}
             self.format_item = self.format_item_json
             self.format_item = self.format_item_json
+            self.format_time = self.format_time_json
         else:
         else:
             self.item_data = static_keys
             self.item_data = static_keys
 
 
@@ -1676,8 +1677,8 @@ class ArchiveFormatter(BaseFormatter):
             'archive': remove_surrogates(archive_info.name),
             'archive': remove_surrogates(archive_info.name),
             'barchive': archive_info.name,
             'barchive': archive_info.name,
             'id': bin_to_hex(archive_info.id),
             'id': bin_to_hex(archive_info.id),
-            'time': format_time(to_localtime(archive_info.ts)),
-            'start': format_time(to_localtime(archive_info.ts)),
+            'time': self.format_time(archive_info.ts),
+            'start': self.format_time(archive_info.ts),
         })
         })
         for key in self.used_call_keys:
         for key in self.used_call_keys:
             item_data[key] = self.call_keys[key]()
             item_data[key] = self.call_keys[key]()
@@ -1695,7 +1696,15 @@ class ArchiveFormatter(BaseFormatter):
         return remove_surrogates(self.archive.comment) if rs else self.archive.comment
         return remove_surrogates(self.archive.comment) if rs else self.archive.comment
 
 
     def get_ts_end(self):
     def get_ts_end(self):
-        return format_time(to_localtime(self.archive.ts_end))
+        return self.format_time(self.archive.ts_end)
+
+    def format_time(self, ts):
+        t = to_localtime(ts)
+        return format_time(t)
+
+    def format_time_json(self, ts):
+        t = to_localtime(ts)
+        return isoformat_time(t)
 
 
 
 
 class ItemFormatter(BaseFormatter):
 class ItemFormatter(BaseFormatter):