From f868a56b935b6152d611b22f7a5538f14dafb194 Mon Sep 17 00:00:00 2001 From: Samuel BF <36460-samuelbf@users.noreply.framagit.org> Date: Sat, 8 Jan 2022 15:32:47 +0100 Subject: Adding timezone information to datetimes from systemd-journal --- systemd/journal.py | 6 +++--- systemd/test/test_journal.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/systemd/journal.py b/systemd/journal.py index 54e54ca..db4701b 100644 --- a/systemd/journal.py +++ b/systemd/journal.py @@ -51,13 +51,13 @@ def _convert_monotonic(m): def _convert_source_monotonic(s): return _datetime.timedelta(microseconds=int(s)) +_LOCAL_TIMEZONE = _datetime.datetime.now().astimezone().tzinfo def _convert_realtime(t): - return _datetime.datetime.fromtimestamp(t / 1000000) - + return _datetime.datetime.fromtimestamp(t / 1000000, _LOCAL_TIMEZONE) def _convert_timestamp(s): - return _datetime.datetime.fromtimestamp(int(s) / 1000000) + return _datetime.datetime.fromtimestamp(int(s) / 1000000, _LOCAL_TIMEZONE) def _convert_trivial(x): diff --git a/systemd/test/test_journal.py b/systemd/test/test_journal.py index 2f3cd3b..e6761ca 100644 --- a/systemd/test/test_journal.py +++ b/systemd/test/test_journal.py @@ -290,6 +290,18 @@ def test_reader_convert_entry(tmpdir): 'x2' : ['YYY', 'YYY'], 'y2' : [b'\200\200', b'\200\201']} +def test_reader_convert_timestamps(tmpdir): + j = journal.Reader(path=tmpdir.strpath) + + val = j._convert_field('_SOURCE_REALTIME_TIMESTAMP', 1641651559324187) + assert val.tzinfo is not None + + val = j._convert_field('__REALTIME_TIMESTAMP', 1641651559324187) + assert val.tzinfo is not None + + val = j._convert_field('COREDUMP_TIMESTAMP', 1641651559324187) + assert val.tzinfo is not None + def test_seek_realtime(tmpdir): j = journal.Reader(path=tmpdir.strpath) -- cgit v1.2.1