diff --git a/glib/gdatetime.c b/glib/gdatetime.c
index fede9f446..3c347c4c2 100644
--- a/glib/gdatetime.c
+++ b/glib/gdatetime.c
@@ -2178,6 +2178,17 @@ get_numeric_format (gchar *fmt,
* format)
*
*
+ * %%g:
+ *
+ * the last two digits of the ISO week-based year as a decimal number
+ * (00-99).
+ *
+ *
+ * %%G:
+ *
+ * the ISO week-based year as a decimal number
+ *
+ *
* %%h:
*
* equivalent to %%b
@@ -2438,6 +2449,12 @@ g_date_time_format (GDateTime *datetime,
get_numeric_format (fmt, sizeof(fmt), alt_digits, pad_set ? pad : 0, 2);
g_string_append_printf (outstr, fmt, g_date_time_get_day_of_month (datetime));
break;
+ case 'g':
+ g_string_append_printf (outstr, "%02d", g_date_time_get_week_numbering_year (datetime) % 100);
+ break;
+ case 'G':
+ g_string_append_printf (outstr, "%d", g_date_time_get_week_numbering_year (datetime));
+ break;
case 'F':
g_string_append_printf (outstr, "%d-%02d-%02d",
g_date_time_get_year (datetime),