[calls] record-row: Take timezone into account for displaying in the UI



commit 57ec06a6f574b1530ae03f5fef520737ddfdf9b5
Author: Evangelos Ribeiro Tzaras <devrtz fortysixandtwo eu>
Date:   Fri Oct 15 18:14:39 2021 +0200

    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 155e7840..1d4e18de 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;
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]