Skip to content Skip to sidebar Skip to footer

Initialize A Moment With The Timezone Offset That I Created It With

I'm using moment and moment-timezone in javascript, and this part of it is one of the most unintuitive API's I've ever seen. I would expect that: moment('2015-12-14T04:00:00Z').utc

Solution 1:

Use parseZone to keep the offset as it was passed in.

moment.parseZone("2015-12-14T04:00:00Z")

As to the "why?" part of your question:

  • moment(...) is local mode. Ambiguous input (without offset) is assumed to be local time. Unambiguous input (with offset) is adjusted to local time.
  • moment.utc(...) is utc mode. Ambiguous input is assumed to be UTC. Unambiguous input is adjusted to UTC.
  • moment.parseZone() keep the input zone passed in. If the input is ambiguous, it is the same as local mode.
  • moment.tz(...) with the moment-timezone plugin can parse input in a specific time zone.

Keep in mind that moment has to contend with a wide variety of inputs.

Also keep in mind that a time zone and a time zone offset are two different things. An offset of -08:00 doesn't necessarily mean you are in the US Pacific time zone.

Post a Comment for "Initialize A Moment With The Timezone Offset That I Created It With"