Ответ 1
Date.parse ведет себя следующим образом:
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.4.2
Функция сначала пытается проанализировать формат строки в соответствии с правилами, выписанными в формате строки времени даты (15.9.1.15). Если String не соответствует этому формату, функция может вернуться к любой эвристике, специфичной для конкретной реализации, или к форматам дат реализации.
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
ECMAScript определяет формат обмена строк для дат-времен, основанный на упрощении формата ISO 8601 Extended. Формат выглядит следующим образом: YYYY-MM-DDTHH: mm: ss.sssZ
Z - это смещение часового пояса, указанное как "Z" (для UTC) или "+" или "-", за которым следует выражение времени HH: mm
Значение смещения отсутствующего часового пояса - "Z".
Итак, в первом случае, так как он не соответствует формату строкового формата даты, выполняется синтаксический анализ, зависящий от реализации (который основан на локальном времени). Во втором случае он соответствует DTSF, поэтому он анализируется так, как если бы часовой пояс был неуказан (который должен быть UTC), следовательно, несоответствие