JSON 日期使用矩的日期转换不正确,OffSet 值被忽略

Incorrect date conversion of JSON dates using moment, OffSet value is ignored

我正在拨打 api 电话并收到以下回复。

{
    "Country": "U.S.A.",
    "FaceValueCcy": "",
    "IsApproved": true,
    "MDate": "/Date(1742130000000+1100)/",
    "MtmInUsd": 0,
}

当我尝试将 MDate 转换为 'DD-MMM-YYYY' 格式时。我期待结果为“2025 年 3 月 17 日”,但它给我的输出为“2025 年 3 月 16 日”。这是我用来转换日期的代码。

moment('/Date(1742130000000+1100)/').utc().format('DD-MMM-YYYY')

当我在 epochconvertor 中查询值“1742130000000”时,它会显示 2025 年 3 月 16 日。为什么时刻忽略+1100?有没有其他方法可以解决此问题?

应该是:

moment.parseZone('/Date(1742130000000+1100)/').format('DD-MMM-YYYY')

您需要使用parseZone()来保持偏移。

console.log(moment.parseZone('/Date(1742130000000+1100)/').utc().format('DD-MMM-YYYY'));

console.log(moment.parseZone('/Date(1742130000000+1100)/').utc().format()); // full time
console.log(moment.parseZone('/Date(1742130000000+1100)/').format()); // full time without UTC conversion
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

参考:https://github.com/moment/moment/issues/3291

使用 paeseZone

moment('/Date(1742130000000+1100)/').parseZone().format('DD-MMM-YYYY')

解决方案。

  1. 也许“/”中的问题尝试将其删除。
  2. 尝试moment.unix(timestamp).formate("DD-MMM-YYYY")