Чтобы получить идентификатор часового пояса IANA пользователя, большинство современных браузеров теперь поддерживают следующее:
Intl.DateTimeFormat().resolvedOptions().timeZone
Тем не менее, по обычной причине вам нужно использовать formatToTimeZone
из date-fns-timezone
- это когда вам нужно использовать другой часовой пояс, отличный от локальной зоны пользователя.В противном случае вы обычно можете просто использовать функцию format
из date-fns
.
Однако в вашем случае вы также пытаетесь использовать спецификатор формата z
для отображениясокращение часового пояса пользователя.Это не предоставляется date-fns напрямую, поэтому, если это критично, вам действительно нужно получить часовой пояс пользователя с API-интерфейсом Intl, показанным выше, и использовать formatToTimeZone
.
Не забывайте, хотячто эти сокращения соответствуют любым данным IANA, которые представлены только на английском языке, и не имеют сокращений для каждого часового пояса.Для тех, кто этого не делает, вместо этого вы увидите числовое значение, например -02
.
. Кроме того, многие сокращения могут быть неоднозначными (например, I
в IST
, возможно, означающие Индию, Израиль).или Ирландия и многие другие ...).Таким образом, в большинстве случаев, если вам не нужно сокращение, вам часто лучше без него.