diff --git a/src/xpdev/xpdatetime.c b/src/xpdev/xpdatetime.c
index 56f3faf974575ba0ae726aa5a95c303ee6932694..c9f9058381bffacc846287df541736656b467689 100644
--- a/src/xpdev/xpdatetime.c
+++ b/src/xpdev/xpdatetime.c
@@ -375,8 +375,10 @@ char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt
 
 char* time_to_isoDateTimeStr(time_t t, xpTimeZone_t zone, char* str, size_t maxlen)
 {
-	snprintf(str, maxlen, "%" PRIu32 "T%06" PRIu32 "%d"
-		,time_to_isoDate(t), time_to_isoTime(t), zone);
+	char zstr[16];
+	snprintf(str, maxlen, "%" PRIu32 "T%06" PRIu32 "%s"
+		,time_to_isoDate(t), time_to_isoTime(t)
+		,xpTimeZone_to_isoTimeZoneStr(zone, "", zstr, sizeof zstr));
 	return str;
 }