Обзор Таблица форматирования токенов Luxon . Вы хотите ZZZZ
для сокращенного именованного смещения.
Примеры:
DateTime.fromObject({year: 2012, month: 1, zone: 'America/New_York'})
.toFormat('ZZZZ') //=> "EST"
DateTime.fromObject({year: 2012, month: 6, zone: 'America/New_York'})
.toFormat('ZZZZ') //=> "EDT"
DateTime.local()
.toFormat('ZZZZ') //=> "PDT" (on my computer)
DateTime.fromISO("2020-05-23T13:30:00+05:30", {zone: 'Asia/Kolkata', locale: 'en-IN'})
.toFormat('ZZZZ') //=> "IST"
Обратите внимание, что в последнем вы также должны указать en-IN
в качестве локали, чтобы получить IST
. В противном случае вы получите GMT+05:30
, если локаль системы не уже en-IN
. Это связано с тем, что Luxon полагается на API-интерфейсы интернационализации браузера, которые, в свою очередь, получают данные из CLDR .
В CLDR многие имена и сокращения обозначены как c для заданного локали, а не во всем мире. То же самое происходит с Europe/London
, получая GMT+1
вместо BST
, если локаль не en-GB
. (Я лично не согласен с этим, но именно так это сейчас реализовано.)