diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-03-16 20:36:46 +0000 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-03-16 20:36:46 +0000 |
commit | e0138ba26fd96a0f43573ed662cb6385349ad4c1 (patch) | |
tree | 594ac2f3ecce17354088b7585850ddbe4936fa2f | |
parent | 32bd56cc4a5d7d700a300b3231abe551e18252e5 (diff) | |
parent | 7b5ace74d80f3f6009782c7f0616f119d72df7c2 (diff) | |
download | tracker-e0138ba26fd96a0f43573ed662cb6385349ad4c1.tar.gz |
Merge branch 'wip/carlosg/lost-subseconds' into 'master'
libtracker-common: Do not miss subsecond info printing iso8601 dates
See merge request GNOME/tracker!496
-rw-r--r-- | src/libtracker-common/tracker-date-time.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libtracker-common/tracker-date-time.c b/src/libtracker-common/tracker-date-time.c index bfc05c782..494b9f5cc 100644 --- a/src/libtracker-common/tracker-date-time.c +++ b/src/libtracker-common/tracker-date-time.c @@ -54,8 +54,17 @@ tracker_date_new_from_iso8601 (const gchar *string, gchar * tracker_date_format_iso8601 (GDateTime *datetime) { - if (g_date_time_get_utc_offset (datetime) == 0) - return g_date_time_format (datetime, "%C%y-%m-%dT%TZ"); - else + gboolean has_offset, has_subsecond; + + has_offset = g_date_time_get_utc_offset (datetime) != 0; + has_subsecond = g_date_time_get_microsecond (datetime) != 0; + + if (has_offset && has_subsecond) + return g_date_time_format (datetime, "%C%y-%m-%dT%H:%M:%S.%f%:z"); + else if (has_offset) return g_date_time_format (datetime, "%C%y-%m-%dT%T%:z"); + else if (has_subsecond) + return g_date_time_format (datetime, "%C%y-%m-%dT%H:%M:%S.%fZ"); + else + return g_date_time_format (datetime, "%C%y-%m-%dT%TZ"); } |