1

Тема: Парсинг даты в ISO-формате

Всем здравствуйте!

Подскажите плиз.

С json-ом получена дата вида: "2019-10-02T16:18:09.406163+00:00"
В инете нашел, что это формат ISO и нигде не могу понять как средствами JScript преобразовать ее в нормальный объект Date().
Как только ни крутил - NaN или еггоги получаю всякие.
Возможно эту дату преобразовать человеческим способом (без всяческих сдвигов или кастраций ее строкового представления)?

В JScript немного дальше новичка, но отнюдь не профи...

2

Re: Парсинг даты в ISO-формате

Насколько я понимаю, JScript не распознает формат ISO.

Вы можете сделать что-то такое:


var isoTimeStr = "2019-10-02T16:18:09.406163+00:00";
var isoTime = new Date( Date.UTC.apply( null, isoTimeStr.split(/[-T:.+]/) ) );

Правда нужно сделать еще одно "приседание", чтобы учесть временную зону.

( 2 * b ) || ! ( 2 * b )

3 (изменено: vovka3003, 2019-10-03 21:01:55)

Re: Парсинг даты в ISO-формате

Rumata пишет:

Насколько я понимаю, JScript не распознает формат ISO.

То-то я и смотрю dll-вьювером - нету ничего похожего в jscript.dll, но теплилась надежда на какую нибудь "RFC-совместимую" функцию...

Rumata пишет:

Вы можете сделать что-то такое:


var isoTimeStr = "2019-10-02T16:18:09.406163+00:00";
var isoTime = new Date( Date.UTC.apply( null, isoTimeStr.split(/[-T:.+]/) ) );

Правда нужно сделать еще одно "приседание", чтобы учесть временную зону.

Собственно, результат парсинга я забираю в Pascal Script (который Remobjects), если уж пилить, то наверное проще будет уже там дописать на более знакомом мне языке
За подсказку спасибо.

4

Re: Парсинг даты в ISO-формате

Ещё вариант, преобразование с помощью простенького конвертера.

Вот что ещё можно конвертить: ссылка;


var encoder = (function(){
	var e = new ActiveXObject('MSXML2.DOMDocument').createElement("e");
	// Функция кодирования данных
	return {
		encode: function(data, dataType){
			e.dataType			= dataType;
			e.nodeTypedValue	= data;
			return e.text;
		},
		// Функция декодирования данных
		decode: function(data, dataType){
			e.dataType	= dataType;
			e.text		= data;
			return e.nodeTypedValue;
		}
	}
})();

var date = encoder.decode("2019-10-02T16:18:09.406163+00:00",'dateTime.tz');

WSH.Echo(date)
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

5

Re: Парсинг даты в ISO-формате

Xameleon пишет:

Ещё вариант

Выглядит универсально.

( 2 * b ) || ! ( 2 * b )

6 (изменено: vovka3003, 2019-10-04 12:01:05)

Re: Парсинг даты в ISO-формате

Xameleon, ну гуру ж ведь! Обнял! Забрал, прикрутил, спасибо!

7

Re: Парсинг даты в ISO-формате

vovka3003, всегда рад помочь ! Сам озадачился таким вопросом, когда делал выгрузку данных с портала portal5.cbr.ru.

Rumata, забавно, спустя столько времени пригодилось. Случайно вспомнил: link

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !