tz = (offset >= 0) ?
'+' + pad(hourOffset) + ':' + pad(minOffset) :
'-' + pad(-hourOffset) + ':' + pad(-minOffset),
+ tz_hour = tz.slice(0, 4) + "00",
tz2 = tz.replace(':', ''),
tz3 = tz2.slice(0, 3),
+ //Tz3 removes minutes digit so will break the tests when parsed if they all use the same minutes digit
+ minutesForTz3 = pad((4 + minOffset) % 60),
+ minute = pad(4 + minOffset),
+
formats = [
['2011-10', '2011-10-01T00:00:00.000' + tz],
['2011-10-08', '2011-10-08T00:00:00.000' + tz],
['2011-10-08T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-10-08T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-10-08T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08T18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08T18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-10-08T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-10-08T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-10-08T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-10-08T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-10-08T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011-10-08 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-10-08 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-10-08 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08 18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08 18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-10-08 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-10-08 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-10-08 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-10-08 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-10-08 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011-W40-6T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-W40-6T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-W40-6T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6T18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6T18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-W40-6T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-W40-6T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-W40-6T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-W40-6T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-W40-6T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011-W40-6 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-W40-6 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-W40-6 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6 18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6 18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-W40-6 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-W40-6 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-W40-6 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-W40-6 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-W40-6 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011-281T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-281T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-281T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-281T18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-281T18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-281T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-281T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-281T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-281T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-281T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011-281 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
['2011-281 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011-281 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-281 18:04' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011-281 18:04:20' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011-281 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011-281 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011-281 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011-281 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011-281 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
['20111008T180420' + tz, '2011-10-08T18:04:20.000' + tz],
['20111008T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
['20111008T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['20111008T1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['20111008T180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['20111008T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['20111008T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['20111008T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['20111008T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['20111008T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
['20111008 180420' + tz, '2011-10-08T18:04:20.000' + tz],
['20111008 1804' + tz2, '2011-10-08T18:04:00.000' + tz],
['20111008 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['20111008 1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['20111008 180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['20111008 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['20111008 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['20111008 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['20111008 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['20111008 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011W406T180420' + tz, '2011-10-08T18:04:20.000' + tz],
['2011W406T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011W406T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011W406T1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011W406T180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011W406T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011W406T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011W406T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011W406T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011W406T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011W406 1804' + tz, '2011-10-08T18:04:00.000' + tz],
['2011W406 180420' + tz, '2011-10-08T18:04:20.000' + tz],
['2011W406 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011W406 1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011W406 180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011W406 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011W406 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011W406 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011W406 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011W406 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011281T180420' + tz, '2011-10-08T18:04:20.000' + tz],
['2011281T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011281T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011281T1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011281T180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011281T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011281T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011281T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011281T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011281T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
['2011281 180420' + tz, '2011-10-08T18:04:20.000' + tz],
['2011281 1804' + tz2, '2011-10-08T18:04:00.000' + tz],
['2011281 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011281 1804' + tz3, '2011-10-08T18:04:00.000' + tz],
- ['2011281 180420' + tz3, '2011-10-08T18:04:20.000' + tz],
+ ['2011281 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
+ ['2011281 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
['2011281 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
['2011281 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
['2011281 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz]