moment-timezone美国/ Sao_Paulo错误的时区偏移

时间:2019-06-10 13:27:22

标签: javascript datetime momentjs moment-timezone

使用moment-timezoneAmerica/Sao_Paulo尝试解析偏移量为America/Sao_Paulo的日期时出现错误。我创建了以下代码:

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);

dateMoment的输出为2019-01-01T23:30:00-02:00,但我期望2019-01-01T23:30:00-03:00,因为America/Sao_Paulo的偏移量为-03:00

我遗漏了某些东西还是我初始化dateMoment错了吗?

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);

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>

1 个答案:

答案 0 :(得分:1)

2019年1月1日,Sao Paulo was still on Summer Time。直到2月17日才是UTC-2。

Brazil abolished summer time going forward,但尚未生效。