Skip to content
Advertisement

MomentJS set timezone without changing time

I’m trying to set the timezone for a date in moment.js without changing the time value

I get a date in utc:

date.toString() // Sun Sep 27 2015 00:00:00 GMT+0000

and I need to set the time zone without changing the time.

Sun Sep 27 2015 00:00:00 GMT-0500

if I use date.utcOffset(moment().utcOffset()) it adds the offset:

date.toString() // Sat Sep 26 2015 19:00:00 GMT-0500

I could do

date = moment(date.format("YYYYMMDDHHmmssSSSS"), "YYYYMMDDHHmmssSSSS")

but that seems like an inefficient way to do it.

Is there any method that will just change the timezone without changing the time?

Advertisement

Answer

At the time of writing this (Moment 2.22), you could go from local to UTC with someLocalMomentVariable.utc(true) then back from UTC to local with someUtcMomentVariable.local(true).

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement