Commits

Adeel Khan committed f04db8c

Fix last commit to account for negative time zone offsets.

Comments (0)

Files changed (1)

ISO8601DateFormatter.m

 #define ISO_TIME_WITH_TIMEZONE_FORMAT  ISO_TIME_FORMAT @"Z"
 //printf formats.
 #define ISO_TIMEZONE_UTC_FORMAT @"Z"
-#define ISO_TIMEZONE_OFFSET_FORMAT @"+%02d%02d"
+#define ISO_TIMEZONE_OFFSET_FORMAT @"%@%02d%02d"
 
 @interface ISO8601DateFormatter(UnparsingPrivate)
 
 	if (includeTime) {
 		NSInteger offset = [timeZone secondsFromGMT];
 		offset /= 60;  //bring down to minutes
-		if (offset == 0)
+		if (offset == 0) {
 			str = [str stringByAppendingString:ISO_TIMEZONE_UTC_FORMAT];
-		else
-			str = [str stringByAppendingFormat:ISO_TIMEZONE_OFFSET_FORMAT, offset / 60, offset % 60];
+		} else {
+			str = [str stringByAppendingFormat:ISO_TIMEZONE_OFFSET_FORMAT,
+			 			  (offset > 0) ? @"+" : @"-", offset / 60, offset % 60];
+		}
 	}
 	return str;
 }