Sample code for 30+ languages & platforms
Unicode C

How to Parse a TimeStamp (such as 2016-11-11T14:32:17.0908971Z)

Timestamps are frequently used in REST API responses. This example demonstrates how to parse a timestamp string to get at the date/time components in the local timezone or in the GMT/UTC timezone.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    const wchar_t *strTimestamp;
    HCkDateTimeW dateTime;
    BOOL bLocalTimezone;
    HCkDtObjW dt;

    //  Let's say we have a timestamp string such as 2016-11-11T14:32:17.0908971Z
    strTimestamp = L"2016-11-11T14:32:17.0908971Z";

    dateTime = CkDateTimeW_Create();
    CkDateTimeW_SetFromTimestamp(dateTime,strTimestamp);

    //  Get a DtObj in the local timezone.
    bLocalTimezone = TRUE;
    dt = CkDtObjW_Create();
    CkDateTimeW_ToDtObj(dateTime,bLocalTimezone,dt);

    //  Get the individual date/time components
    wprintf(L"-- Local Time --\n");
    wprintf(L"Year: %d\n",CkDtObjW_getYear(dt));
    wprintf(L"Month: %d\n",CkDtObjW_getMonth(dt));
    wprintf(L"Day: %d\n",CkDtObjW_getDay(dt));
    wprintf(L"Hour: %d\n",CkDtObjW_getHour(dt));
    wprintf(L"Minutes: %d\n",CkDtObjW_getMinute(dt));
    wprintf(L"Seconds: %d\n",CkDtObjW_getSecond(dt));

    //  Get a DtObj in the GMT/UTC timezone.
    bLocalTimezone = FALSE;
    CkDateTimeW_ToDtObj(dateTime,bLocalTimezone,dt);

    //  Get the individual date/time components
    wprintf(L"-- UTC Time --\n");
    wprintf(L"Year: %d\n",CkDtObjW_getYear(dt));
    wprintf(L"Month: %d\n",CkDtObjW_getMonth(dt));
    wprintf(L"Day: %d\n",CkDtObjW_getDay(dt));
    wprintf(L"Hour: %d\n",CkDtObjW_getHour(dt));
    wprintf(L"Minutes: %d\n",CkDtObjW_getMinute(dt));
    wprintf(L"Seconds: %d\n",CkDtObjW_getSecond(dt));


    CkDateTimeW_Dispose(dateTime);
    CkDtObjW_Dispose(dt);

    }