summaryrefslogtreecommitdiff
path: root/src/trg-cell-renderer-epoch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/trg-cell-renderer-epoch.c')
-rw-r--r--src/trg-cell-renderer-epoch.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/trg-cell-renderer-epoch.c b/src/trg-cell-renderer-epoch.c
index a44971a..3df9dc6 100644
--- a/src/trg-cell-renderer-epoch.c
+++ b/src/trg-cell-renderer-epoch.c
@@ -18,6 +18,7 @@
*/
#include <stdint.h>
+#include <time.h>
#include <gtk/gtk.h>
#include "trg-cell-renderer-epoch.h"
@@ -65,11 +66,19 @@ trg_cell_renderer_epoch_set_property(GObject * object, guint property_id,
gint64 new_value = g_value_get_int64(value);
if (priv->epoch_value != new_value) {
if (new_value > 0) {
+#if GLIB_CHECK_VERSION(2, 26, 00)
GDateTime *dt = g_date_time_new_from_unix_utc(new_value);
gchar *timestring = g_date_time_format(dt, "%F %H:%M:%S");
g_object_set(object, "text", timestring, NULL);
g_free(timestring);
g_date_time_unref(dt);
+#else
+ time_t time_val = new_value;
+ char buf[64];
+ struct tm *ts = localtime(&time_val);
+ strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", ts);
+ g_object_set(object, "text", buf, NULL);
+#endif
} else {
g_object_set(object, "text", "", NULL);
}