Trying to migrate from Moment.js to Dayjs but the only thing I can't get working is the Timezone
abbreviation.
dayjs('2020-07-06T14:30:00.000-04:00').tz(dayjs.tz.guess()).format('Do MMM YYYY [at] HH:MMa z')
Calling the above I would expect 6th Jul 2020 at 08:07am EDT
but currently I am just getting z
where EDT
is.
I have added the utc
and timezone
plugins and can't see any other plugins needed to make this work, I notice on Dayjs format docs that z
isn't listed but searching the web, I see a lot of folks saying the solution is format('', {timeZone})
but the format
doesn't take a second argument??
Looks like it was added to tz-plugin
: https://github.com/iamkun/dayjs/pull/325/files#diff-cad460a5e46a2a48c59e95356c683820R195
Here's a code sandbox with an example of the issue: https://codesandbox.io/s/hungry-knuth-r58gz
--- Edit
Looks like support for tz
abbr was removed :(
https://github.com/iamkun/dayjs/pull/448/commits/e64c03cea79c579bcd3c4caf235b4724e56614d4
The z
formatting option is added in 1.9.0
version of dayjs: https://github.com/iamkun/dayjs/pull/1069
Update the newest version and set up the plugins correctly, which should work. Example below:
var dayjs = require("dayjs")
var utc = require("dayjs/plugin/utc")
var timezone = require("dayjs/plugin/timezone")
var advanced = requires("dayjs/plugin/advancedFormat")
dayjs.extend(timezone)
dayjs.extend(utc)
dayjs.extend(advanced)
dayjs().tz('Europe/Paris').format('DD/MM/YYYY z')