Без дополнительного контекста это невозможно. Сокращения часовых поясов не стандартизированы и не являются уникальными.
В вашем примере вы сказали, что IST
означает для вас «Стандартное индийское время», однако IST
означает также , используемый для » Стандартное время Израиля "и" Iri sh Стандартное время ". Все они имеют очень разные смещения часового пояса.
Другим распространенным примером является CST
, которым могут быть «Центральное стандартное время», «Стандартное время Кубы» или «Стандартное время Китая».
Вместо этого - вы должны go вернуться к исходному источнику и получить смещение часового пояса (например, +05:30
) или идентификатор часового пояса (например, Asia/Kolkata
), или получить этот контекст другим способом.
Вы сказали, что извлекаете эту временную метку из RSS-канала от Times of India . Это тип дополнительного контекста, о котором я говорю. Поскольку вы знаете, что это и индийский источник новостей, вы можете смело предположить, что IST
означает стандартное время Индии.
Вы должны знать, что формат RSS-канала в Times of India неправильно использует временные метки. Спецификация RSS 2.0 требует, чтобы временные метки были в формате RF C 822 . В этом формате IST
не является допустимым часовым поясом. Действительно, если вы поместите его на сайт, такой как Feed Validator , он выдаст вам ошибку "элемент должен быть RF C -822 дата-время" .
Обратите внимание, что RF C 822 является старым и устаревшим. Он был заменен на RF C 2822 , а затем снова на RF C 5322 . Аббревиатуры часовых поясов все устарели и перемещены в раздел obs-zone
. Таким образом, они действительно не должны использоваться вообще. Должны отображаться только цифры c. Тем не менее, многие реализации RSS следуют старому стандарту, и поэтому разумно принять некоторые сокращения, указанные в obs-zone
. В частности, все реализации должны принимать следующее:
"Z" == "+0000"
"UT" == "+0000"
"GMT" == "+0000"
"EST" == "-0500"
"EDT" == "-0400"
"CST" == "-0600"
"CDT" == "-0500"
"MST" == "-0700"
"MDT" == "-0600"
"PST" == "-0800"
"PDT" == "-0700"
(Другие военные зоны «A» - «Y» никогда не должны использоваться.)
Обратите внимание, что IST
не входит в число их. Таким образом, чтобы ответить на ваш вопрос напрямую, при синтаксическом анализе временной метки RF C 822, содержащей нестандартное сокращение часового пояса, вам потребуется заменить сокращение на смещение самостоятельно перед анализом. В этом случае:
var s = 'Wed, 08 Apr 2020 15:24:06 IST';
var d = new Date(s.replace('IST', '+0530'));
Вы также можете заменить другие obs-zone
аббревиатуры, которые я перечислил, но, как правило, в этом нет необходимости. Большинство реализаций ECMAScript будут анализировать их (даже если они не требуются по spe c).
Если вы столкнетесь с другими RSS-лентами с другими сокращениями часовых поясов, вам нужно будет вручную определить, что как их интерпретировать. Нет окончательного списка.
Некоторые дополнительные чтения: