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>
使用 paeseZone
moment('/Date(1742130000000+1100)/').parseZone().format('DD-MMM-YYYY')
解决方案。
- 也许“/”中的问题尝试将其删除。
- 尝试
moment.unix(timestamp).formate("DD-MMM-YYYY")
我正在拨打 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>
使用 paeseZone
moment('/Date(1742130000000+1100)/').parseZone().format('DD-MMM-YYYY')
解决方案。
- 也许“/”中的问题尝试将其删除。
- 尝试
moment.unix(timestamp).formate("DD-MMM-YYYY")