summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-03-20 13:22:38 +0100
committerCarlos Garnacho <carlosg@gnome.org>2022-03-21 12:56:42 +0000
commitc3cc6bf5eb2e505e3f15c16f9a0fee9de7238574 (patch)
tree7a0ececd8a88c6a571326f3564c0d92a7825e75f
parent96efd662c990c4f9afb23b39ce0214b0f440d53a (diff)
downloadglib-c3cc6bf5eb2e505e3f15c16f9a0fee9de7238574.tar.gz
glib: Format GDateTime ISO8601 years as %C%y
The current use of %Y does not take into account that %Y will not pad the year with 0's, meanwhile ISO8601 does expect a full YYYY format for all dates. This breaks the formatting with dates prior to the year 1000. Split this into %C%y so 2-digit, 0-padded century and year are printed separately, this gives the expected YYYY format.
-rw-r--r--glib/gdatetime.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/glib/gdatetime.c b/glib/gdatetime.c
index 142338128..0ec390c94 100644
--- a/glib/gdatetime.c
+++ b/glib/gdatetime.c
@@ -3492,12 +3492,12 @@ g_date_time_format_iso8601 (GDateTime *datetime)
GString *outstr = NULL;
gchar *main_date = NULL;
gint64 offset;
- gchar *format = "%Y-%m-%dT%H:%M:%S";
+ gchar *format = "%C%y-%m-%dT%H:%M:%S";
/* if datetime has sub-second non-zero values below the second precision we
* should print them as well */
if (datetime->usec % G_TIME_SPAN_SECOND != 0)
- format = "%Y-%m-%dT%H:%M:%S.%f";
+ format = "%C%y-%m-%dT%H:%M:%S.%f";
/* Main date and time. */
main_date = g_date_time_format (datetime, format);