From 57ec06a6f574b1530ae03f5fef520737ddfdf9b5 Mon Sep 17 00:00:00 2001 From: Evangelos Ribeiro Tzaras Date: Fri, 15 Oct 2021 18:14:39 +0200 Subject: [PATCH] record-row: Take timezone into account for displaying in the UI Since the database uses UTC times we have to take the timezone offset into account when displaying times in the UI. Fixes #163 --- src/calls-call-record-row.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/calls-call-record-row.c b/src/calls-call-record-row.c index 155e784..1d4e18d 100644 --- a/src/calls-call-record-row.c +++ b/src/calls-call-record-row.c @@ -95,17 +95,19 @@ nice_time (GDateTime *t, gboolean *final) { GDateTime *now = g_date_time_new_now_local (); + g_autoptr (GTimeZone) local_tz = g_time_zone_new_local (); + g_autoptr (GDateTime) t_local_tz = g_date_time_to_timezone (t, local_tz); const gboolean today = - calls_date_time_is_same_day (now, t); + calls_date_time_is_same_day (now, t_local_tz); const gboolean yesterday = - (!today && calls_date_time_is_yesterday (now, t)); + (!today && calls_date_time_is_yesterday (now, t_local_tz)); g_assert (nice != NULL); g_assert (final != NULL); if (today || yesterday) { - gchar *n = g_date_time_format (t, "%R"); + gchar *n = g_date_time_format (t_local_tz, "%R"); if (yesterday) { @@ -120,12 +122,12 @@ nice_time (GDateTime *t, } else if (calls_date_time_is_same_year (now, t)) { - *nice = g_date_time_format (t, "%b %-d"); + *nice = g_date_time_format (t_local_tz, "%b %-d"); *final = FALSE; } else { - *nice = g_date_time_format (t, "%Y"); + *nice = g_date_time_format (t_local_tz, "%Y"); *final = TRUE; }