momentjs — Как конвертировать время UTC в местное время

Как перевести время UTC в местное время javascript

Часовой пояс не является смещением. Смещение — это только часть часового пояса. Многие часовые пояса чередуются между двумя различными смещениями для учета летнего времени . Часовой пояс должен учитывать это, включая конкретные даты и время начала и окончания летнего времени, а также историю изменений, которые могли иметь часовой пояс.

Случай из Новой Зеландии, который вы привели, является прекрасным примером. Вы сказали, что «12 — это новозеландский часовой пояс», и, таким образом, вы ожидаете, что, поскольку в эту дату Новая Зеландия будет в летнее время , переход с 6:14 UTC на новозеландское местное время будет 19:14. — 13 часов спустя.

Но 12 не в полной мере представляют Новую Зеландию. Это всего лишь 12-часовое смещение от UTC. Есть много других часовых поясов, которые используют одно и то же смещение по-разному. Например, Маршалловы Острова используют UTC 12 круглогодично, без перехода на летнее время.

Вы действительно должны прочитать вики-тег с часовым поясом, особенно раздел под названием «Часовой пояс! = Смещение».

Вместо смещений вы должны представлять часовые пояса с их полным идентификатором IANA из базы данных tz . Например, восточное время США — "America/New_York" , индийское время — "Asia/Kolkata" , а новозеландское — "Pacific/Auckland" . Вы можете найти больше в списке в Википедии .

Вы можете использовать момент-часовой пояс для работы с ними в JavaScript.

 moment("2014-10-18T06:14:41.512Z").tz('Pacific/Auckland').format('YYYY-MM-DD HH:mm') // Output: "2014-10-18 19:14" 

Я также подробно освещаю эти темы в своем курсе « Основы даты и времени» на Pluralsight.com.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector