Na versão mais recente (2.15.1), parseZone () parece não funcionar corretamente quando o deslocamento é utc.
moment.parseZone ('2016-05-04T00: 00: 00Z'). format ()
=> "2016-05-04T08: 00: 00Z" ruim
moment.parseZone ('2016-05-04T00: 00: 00 + 08: 00'). format ()
=> "2016-05-04T00: 00: 00 + 08: 00" bom
O método era bom em 2.14.1, recentemente atualizei moment.js para 2.15.1 e a nova versão falhou em meu caso de teste.
Sim. Isto é errado. Vou ver se não consigo lidar com isso esta noite, acho que sei onde aconteceu.
Para sua informação, esse bug foi introduzido na correção de # 3083, b2ee2d444282fcb90abfd43fe562253c73e14b08
Isso está relacionado? Eu testei com 2.15.1 também:
t = moment().toISOString();
console.log(t.toString());
parsed = moment.parseZone(t);
console.log(parsed.toISOString());
Saídas:
2016-10-14T15:33:37.457Z
2016-10-14T17:33:37.457Z
Minha hora local é "Europa / Viena" e, portanto, sei de onde provavelmente vem a diferença de 2 horas, mas não vejo por que deveria.
Com 2.14.1 obtenho a saída esperada:
2016-10-14T15:36:23.956Z
2016-10-14T15:36:23.956Z
Acredito que o PR lida com o problema - # 3504 - Por favor, deixe-me saber se é simplesmente errado. @maggiepint
Posso confirmar que corrige meu problema em https://github.com/moment/moment/issues/3463#issuecomment -253836488
Comentários muito úteis
3504 acaba de ser rotulado como uma correção de bug w00t!