diff -r 3d8d5a8a36c7 -r bb929248da3d libpurple/protocols/jabber/iq.c --- a/libpurple/protocols/jabber/iq.c Fri May 04 15:48:18 2018 -0500 +++ b/libpurple/protocols/jabber/iq.c Fri Jul 14 15:13:56 2017 -0500 @@ -183,14 +183,11 @@ PurpleXmlNode *child) { JabberIq *iq; - time_t now_t; - struct tm *tm; - - time(&now_t); if(type == JABBER_IQ_GET) { PurpleXmlNode *tzo, *utc; - const char *date, *tz; + GDateTime *now, *now_utc; + gchar *date, *tz; iq = jabber_iq_new(js, JABBER_IQ_RESULT); jabber_iq_set_id(iq, id); @@ -201,16 +198,21 @@ purple_xmlnode_set_namespace(child, NS_ENTITY_TIME); /* -06:00 */ - tm = localtime(&now_t); - tz = purple_get_tzoff_str(tm, TRUE); + now = g_date_time_new_now_local(); + tz = g_date_time_format(now, "%:z"); tzo = purple_xmlnode_new_child(child, "tzo"); purple_xmlnode_insert_data(tzo, tz, -1); + g_free(tz); /* 2006-12-19T17:58:35Z */ - tm = gmtime(&now_t); - date = purple_utf8_strftime("%Y-%m-%dT%H:%M:%SZ", tm); + now_utc = g_date_time_to_utc(now); + date = g_date_time_format(now_utc, "%FT%TZ"); utc = purple_xmlnode_new_child(child, "utc"); purple_xmlnode_insert_data(utc, date, -1); + g_free(date); + + g_date_time_unref(now); + g_date_time_unref(now_utc); jabber_iq_send(iq); } else {