Skip to content

Commit 02119c2

Browse files
committed
Isoformat conversion patch
Datetime on windows fails when converting from iso format. Work-around the issue by manual parsing
1 parent 69f69ef commit 02119c2

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/neknihy/app.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,32 @@ def refreshRents(self):
5353
self.saveBooks()
5454
self.updateStatus()
5555

56+
def dateFromString(self, date):
57+
try:
58+
return datetime.fromisoformat(date)
59+
except Exception:
60+
pass
61+
try:
62+
y = None
63+
m = None
64+
d = None
65+
if re.match(r'^\d{4}-\d{2}-\d{2}', date):
66+
y = date[0:4]
67+
m = date[5:7]
68+
d = date[8:10]
69+
if re.match(r'^\d{6}', date):
70+
y = date[0:4]
71+
m = date[4:6]
72+
d = date[6:8]
73+
if y is not None:
74+
return datetime(int(y), int(m), int(d), tzinfo=timezone.utc)
75+
except Exception:
76+
pass
77+
return datetime.now(timezone.utc)
78+
5679
def bookExpired(self, book):
5780
if "end_time" in book:
58-
time = datetime.fromisoformat(book["end_time"])
81+
time = self.dateFromString(book["end_time"])
5982
if time < datetime.now(timezone.utc):
6083
return True
6184
return False

0 commit comments

Comments
 (0)