Sample code for 30+ languages & platforms
PureBasic

Query NTP Server for Current Date/Time

Demonstrates how to query an NTP server to get the current date/time.

Note: This feature was added in Chilkat v9.5.0.96.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

    ; Specify the NTP server domain.
    ; Information is passed in a JSON object to allow for any unanticipated future optional information that might need to be provided.
    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateString(json,"ntp_server","pool.ntp.org")

    ; Query the NTP server for the current date/time.
    dt.i = CkDateTime::ckCreate()
    If dt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkDateTime::ckSetFromNtpServer(dt,CkJsonObject::ckEmit(json))
    If success = 0
        Debug CkDateTime::ckLastErrorText(dt)
        CkJsonObject::ckDispose(json)
        CkDateTime::ckDispose(dt)
        ProcedureReturn
    EndIf

    ; Show the date/time in various formats..
    bLocalTime.i = 1
    Debug CkDateTime::ckGetAsTimestamp(dt,bLocalTime)
    Debug CkDateTime::ckGetAsRfc822(dt,bLocalTime)
    Debug Str(CkDateTime::ckGetAsUnixTime(dt,bLocalTime))

    ; Sample output:

    ; 2023-10-31T09:43:27-05:00
    ; Tue, 31 Oct 2023 09:43:27 -0500
    ; 1698745407


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


    ProcedureReturn
EndProcedure