我正在调用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')
解决方案
- 可能问题在"/">
- 尝试
moment.unix(timestamp).formate("DD-MMM-YYYY")