2016-06-07 3 views
0

У меня есть временная метка unix, которую я хочу преобразовать в локальное время, используя библиотеку времени-времени. Я не уверен, как это сделать. Не удалось найти ничего. У кого-нибудь есть идеи?Unix timestamp to Local date in moment-timezone

Я пробовал это, но не дал правильное местное время.

moment.utc(1465297200000).toDate(); 

Выход я получаю Tue Jun 07 2016 11:00:00 GMT+0000 (UTC).

Принимаю во внимание, что это Tue Jun 07 2016 16:30:00 GMT+0000 (UTC).

Кроме того, я хочу, чтобы выход был в формате MM-DD-YYYY HH:mm:ss.

+0

Что вы пытались до сих пор? –

+0

moment.utc (unix-timestamp) .toDate(); Не дается правильное местное время. –

+0

Добавьте это к вопросу с вашим входом, ожидаемым выходом, фактическим выходом –

ответ

0

Нет причин вводить часовой пояс, если вам нужно только местное время пользователя. Момент времени используется только тогда, когда вам нужно отображать время в часовом поясе, отличном от UTC или местного времени пользователя.

Если вы хотите принять точку на глобальной шкале, а также отображать его в качестве местного времени пользователя, используйте функцию moment() конструктор:

moment(1465297200000).format() 
"2016-06-07T06:00:00-05:00" 

Обратите внимание, что я нахожусь в UTC-5 часовой пояс прямо сейчас , поэтому время UTC метки времени было сдвинуто назад на пять часов, от «2016-06-07T11: 00: 00Z» до «2016-06-07T06: 00: 00-05: 00».

Я не уверен, почему вы ожидаете, что это приведет к 16:30 GMT. Вы действительно хотите, чтобы он показывался в стандартное время Индии в 16:30? Если компьютер, который вы используете, установлен в Индию, это должно работать с функцией момента.

Чтобы получить формат, который вы ищете, вам просто нужно указать маркеры формата в формате функцию:

moment(1465297200000).format('MM-DD-YYYY HH:mm:ss') 
"06-07-2016 06:00:00" 

Там нет необходимости вызывать .toDate, когда вы используете момент, если вы не взаимодействующие с API сторонних разработчиков, который ожидает объект даты.