I was trying to use z
or zz
in format to display the timezone at the end of the string and found that it\'s deprecated. Z
and ZZ
As of moment-timezone 0.1.0, you can use the formatting additions to get the abbreviation of a specific time zone:
moment().tz("America/Los_Angeles").format('z'); // PST or PDT
As of version 0.5.0, you can now guess the user's local time zone, which when combined with the above technique, allows you to do the following:
moment().tz(moment.tz.guess()).format('z');
Assuming the guess was correct, it will display the associated abbreviation.
Probably this is not a good way, but I did not want to add any additional scripts in my project for local time zone, so I investigated a moment object and I get the local time zone by the code I wrote below:
var test = momentUpdateDate._d.toString().substring(test.indexOf('(')+1, test.indexOf(')'));
2020 Update
Some time in the past 5 years, this stopped working. Now try:
var timeZone = moment.tz.guess();
var time = new Date();
var timeZoneOffset = time.getTimezoneOffset();
moment.tz.zone(timeZone).abbr(timeZoneOffset);
From the latest moment timezone docs
moment.tz(String).format("Z z"); // -08:00 PST
moment.tz(String).zoneAbbr(); // PST
moment.tz(String).zoneName(); // PST
Some examples:
moment.tz(moment.tz.guess()).zoneAbbr(); // PST
moment.tz("America/New_York").zoneAbbr(); // EST
After searching a lot, this seems to work.
const t = moment.tz.guess();
timeZone = moment.tz(t).zoneAbbr();;