Правильная строка формата Javascript Date.parse(...)?
Что такое культурно-инвариантный способ построения строки, так что конструктор Javascript Date() может анализировать его и создавать правильный объект даты?
Я пробовал эти строки формата, которые не работают (используя С# для генерации строк):
clientDate.ToString();
// gives: "11/05/2009 17:35:23 +00:00"
clientDate.ToString("MMM' 'dd', 'yyyy' 'h':'mm':'ss' 'tt");
// works on an English server
// but on a French server, gives: "mai 11, 2009 5:35:23"
// Javascript won't parse that.
clientDate.ToString("MM'-'dd'-'yyyy' 'HH':'mm':'ss")
// gives: 05-11-2009 17:35:23
Что такое универсальный формат?
Ответы
Ответ 1
Согласно MDC:
Для строки, представляющей время, parse
возвращает значение времени. Он принимает стандарт IETF (RFC 1123, раздел 5.2.14 и где-либо еще) синтаксис даты: "Mon, 25 Dec 1995 13:30:00 GMT"
. Он понимает аббревиатуры часовых поясов континентальной части США, но для общего использования использует смещение временной зоны, например, "Mon, 25 Dec 1995 13:30:00 GMT+0430"
(4 часа, 30 минут к востоку от гринвичского меридиана). Если вы не укажете часовой пояс, предполагается локальный часовой пояс. GMT и UTC считаются эквивалентными.
Если вы не можете сгенерировать этот формат с использованием английского языка, попробуйте использовать Date.UTC
Ответ 2
Если вы хотите, чтобы независимый от языка формат Javascript мог анализировать, вы можете использовать 2013-03-31T16:36:57+0900
. Он работает, по крайней мере, в Node.js и Chrome, поэтому я подозреваю, что он стандартный.