Преобразовать метку времени из часового пояса в UTC? - PullRequest
0 голосов
/ 24 октября 2018

Я получаю метку времени от стороннего API, которая выглядит следующим образом: 1540388730994.Однако мне сообщили, что эта временная метка находится в 'Europe/Amsterdam' часовом поясе.

Мне нужно преобразовать эту временную метку в UTC, поскольку мы храним все наши даты в UTC.

Как это возможнов JavaScript?

Пока я пробовал:

const timestamp = 1540388730994

const timestampInUTC = moment.tz(timestamp, 'Europe/Amsterdam').utc().valueOf()

console.log(timestamp, timestampInUTC)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data-2012-2022.min.js"></script>

Однако вы можете ясно видеть, что две выходные метки времени идентичны, тогда как я ожидал бы, что преобразование вычтет 1-2 часа, поскольку часовой пояс АмстердамаGMT + 2.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 24 октября 2018

Временные метки в числовом виде: всегда в UTC.Если по какой-то причине они вручную добавили / вычли его из-за смещения часового пояса, они делают это неправильно.Вы не видите никаких изменений от момента, потому что временная метка UTC является одним и тем же моментом времени, независимо от того, в каком часовом поясе вы представляете местный эквивалент времени. Если вы ожидали, что временная метка изменится, это будет представлять совершенно другой момент ввремя.

...