Используйте JavaScript для преобразования строки даты с часовым поясом в объект даты в локальное время
Формат строки даты выглядит следующим образом:
YYYY-MM-ДДTчч: мм: сс-0Z00
Пример 1:
2010-03-05T07: 03: 51-0800
пример 2:
2010-07-01T20: 23: 00-0700
Мне нужно создать объект даты, используя эти строки даты. new Date()
не работает над этой строкой.
Пожалуйста, помогите мне преобразовать эти строки даты в объекты даты с местным часовым поясом.
Спасибо!
Изменить: я использую это в интеграции Pentaho Data Integration 4.3.0.
Ответы
Ответ 1
Для этого вы можете использовать библиотеку, такую как Moment.js.
См. синтаксический анализ String + Format.
http://momentjs.com/docs/#/parsing/string-format/
Следующее должно проанализировать предоставленную вами дату, но вам может потребоваться изменить ее для ваших нужд.
var oldDate = "2010-03-05T07:03:51-0800";
var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();
В качестве альтернативы см. парсер Moment String, который выглядит так, как будто он находится в указанном вами формате, за исключением пробела между секундами времени и часового пояса.
http://momentjs.com/docs/#/parsing/string/
Alternative
Второй способ сделать это - Date.js, другая библиотека, которая, похоже, отлично разбирает формат. http://www.datejs.com
Ответ 2
Возьмите мой часовой пояс в качестве примера (AEST):
function parseDate(str_date) {
return new Date(Date.parse(str_date));
}
var str_date = "2015-05-01T22:00:00+10:00"; //AEST time
var locale_date = parseDate(str_date);
locale_date: Пт май 01 2015 22:00:00 GMT + 1000 (AEST)
var str_date = "2015-05-01T22:00:00+00:00" //UTC time
var locale_date = parseDate(str_date);
locale_date: сб май 02 2015 08:00:00 GMT + 1000 (AEST)
Ответ 3
Строка даты:
var strDate = "2010-07-01T20:23:00-0700";
В локальное представление времени в собственном объекте Date JS:
var ltzDate = (new Date(strDate)).toLocaleString();