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



我正在调用api并得到以下响应。

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

当我试图将MDate转换为' dd - mm - yyyy '格式时。我期待的结果是"2025年3月17日",但它给我的输出是"2025年3月16日"。这是我用来转换日期的代码。

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

当我在epochconvertor中查询值'1742130000000'时,它给出了16-Mar-2025。为什么力矩忽略+1100?有没有其他方法可以解决这个问题?

您需要使用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')

应该是:

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

解决方案

  1. 可能问题在"/">
  2. 尝试moment.unix(timestamp).formate("DD-MMM-YYYY")

相关内容

  • 没有找到相关文章

最新更新