简体   繁体   中英

moment-timezone America/Sao_Paulo wrong timezone offset

I'm getting an error using moment-timezone with America/Sao_Paulo trying to parse date with America/Sao_Paulo offset. I've created this code:

const date = "2019-1-1 23:30";
const format = "YYYY-M-D HH:mm";
const timezone = "America/Sao_Paulo";
const dateMoment = moment.tz(date, format, timezone);

The output of dateMoment is 2019-01-01T23:30:00-02:00 but I expect 2019-01-01T23:30:00-03:00 , since America/Sao_Paulo has offset -03:00 .

Am I missing something or did I initialize dateMoment wrong?

 const date = "2019-1-1 23:30"; const format = "YYYY-MD HH:mm"; const timezone = "America/Sao_Paulo"; const dateMoment = moment.tz(date, format, timezone); console.log(dateMoment.format()); console.log(moment.tz(timezone).format('Z')); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script> <script type="text/javascript" src="http://momentjs.com/downloads/moment-timezone-with-data.js"></script> 

On January 1st 2019, Sao Paulo was still on Summer Time . It was UTC-2 until February 17th.

Brazil abolished summer time going forward , but that hadn't taken effect yet.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM