Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

Parse a Microsoft JSON Date (MS AJAX Date)

See more JSON Examples

Demonstrates how to parse a Microsoft JSON Date, also known as an MSAJAX date.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkDtObj.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkDateTime.pb"

Procedure ChilkatExample()

    success.i = 0

    ;  Parse Microsoft JSON Dates (AJAX Dates)
    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonObject::ckLoad(json,"{ " + Chr(34) + "AchievementDate" + Chr(34) + ":" + Chr(34) + "/Date(1540229468330-0500)/" + Chr(34) + "}")

    dt.i = CkDateTime::ckCreate()
    If dt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonObject::ckDateOf(json,"AchievementDate",dt)
    If success <> 1
        Debug "Unable to parse a date/time."
        CkJsonObject::ckDispose(json)
        CkDateTime::ckDispose(dt)
        ProcedureReturn
    EndIf

    ;  Show the date in different formats:
    bLocal.i = 1
    Debug "RFC822: " + CkDateTime::ckGetAsRfc822(dt,bLocal)
    Debug "Timestamp: " + CkDateTime::ckGetAsTimestamp(dt,bLocal)
    Debug "YYYY-MM-DD: " + CkDateTime::ckGetAsIso8601(dt,"YYYY-MM-DD",bLocal)

    ;  Get integer values for year, month, day, etc.
    dtObj.i = CkDtObj::ckCreate()
    If dtObj.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkDateTime::ckToDtObj(dt,bLocal,dtObj)

    Debug "year: " + Str(CkDtObj::ckYear(dtObj))
    Debug "month: " + Str(CkDtObj::ckMonth(dtObj))
    Debug "day: " + Str(CkDtObj::ckDay(dtObj))
    Debug "hour: " + Str(CkDtObj::ckHour(dtObj))
    Debug "minute: " + Str(CkDtObj::ckMinute(dtObj))
    Debug "seconds: " + Str(CkDtObj::ckSecond(dtObj))

    ;  Sample output:
    ;  RFC822: Mon, 22 Oct 2018 17:31:08 -0500
    ;  Timestamp: 2018-10-22T17:31:08-05:00
    ;  YYYY-MM-DD: 2018-10-22
    ;  year: 2018
    ;  month: 10
    ;  day: 22
    ;  hour: 17
    ;  minute: 31
    ;  seconds: 8


    CkJsonObject::ckDispose(json)
    CkDateTime::ckDispose(dt)
    CkDtObj::ckDispose(dtObj)


    ProcedureReturn
EndProcedure