Sample code for 30+ languages & platforms
Unicode C

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 Unicode C Downloads

Unicode C
#include <C_CkJsonObjectW.h>
#include <C_CkDateTimeW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkJsonObjectW json;
    HCkDateTimeW dt;
    BOOL bLocalTime;

    success = FALSE;

    //  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 = CkJsonObjectW_Create();
    CkJsonObjectW_UpdateString(json,L"ntp_server",L"pool.ntp.org");

    //  Query the NTP server for the current date/time.
    dt = CkDateTimeW_Create();
    success = CkDateTimeW_SetFromNtpServer(dt,CkJsonObjectW_emit(json));
    if (success == FALSE) {
        wprintf(L"%s\n",CkDateTimeW_lastErrorText(dt));
        CkJsonObjectW_Dispose(json);
        CkDateTimeW_Dispose(dt);
        return;
    }

    //  Show the date/time in various formats..
    bLocalTime = TRUE;
    wprintf(L"%s\n",CkDateTimeW_getAsTimestamp(dt,bLocalTime));
    wprintf(L"%s\n",CkDateTimeW_getAsRfc822(dt,bLocalTime));
    wprintf(L"%u\n",CkDateTimeW_GetAsUnixTime(dt,bLocalTime));

    //  Sample output:

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


    CkJsonObjectW_Dispose(json);
    CkDateTimeW_Dispose(dt);

    }