Sample code for 30+ languages & platforms
PureBasic

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