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

I am making an api call and getting the below response.

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

When I am trying to convert the MDate into 'DD-MMM-YYYY' format. I am expecting the result as '17-Mar-2025' but it is giving me the output as '16-Mar-2025'. This is the code I am using to convert the date.

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

When I query the value '1742130000000' in epochconvertor, it gives me 16-Mar-2025. why moment is ignoring +1100? Is there any alternate way to resolve this issue?

4 answers

  • answered 2021-10-21 06:33 msrumon

    It should be:

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

  • answered 2021-10-21 06:33 alpakyol

    You need to use parseZone() to keep the offset.

    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>

    Reference: https://github.com/moment/moment/issues/3291

  • answered 2021-10-21 06:34 Awais

    Use paeseZone

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

  • answered 2021-10-21 06:38 Shubham Raturi

    Solution.

    1. Maybe the issue in "/" try to remove that.
    2. Try moment.unix(timestamp).formate("DD-MMM-YYYY")

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum