Sample code for 30+ languages & platforms
C

Get Email Date/Time

Demonstrates getting the email "Date" header field in a CkDateTime object.

Chilkat C Downloads

C
#include <C_CkEmail.h>
#include <C_CkDateTime.h>
#include <C_CkDtObj.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkEmail email;
    HCkDateTime dtTime;
    BOOL bLocalTime;
    int unixTime;
    HCkDtObj dtObj;

    success = FALSE;

    email = CkEmail_Create();

    // Load a .eml file into the email object.
    success = CkEmail_LoadEml(email,"/home/users/chilkat/eml/myEml.eml");

    dtTime = CkDateTime_Create();
    CkDateTime_SetFromRfc822(dtTime,CkEmail_emailDateStr(email));

    // Once we have the CkDateTime object, we can get the date/time in many different formats:

    // Get as a RFC822 GMT string:
    bLocalTime = FALSE;
    printf("%s\n",CkDateTime_getAsRfc822(dtTime,bLocalTime));

    // Get as an RFC822 string in the local timezone.
    // (remember, the daylight savings that existed at the given time in the past is applied)
    bLocalTime = TRUE;
    printf("%s\n",CkDateTime_getAsRfc822(dtTime,bLocalTime));

    // Get as a 32-bit UNIX time (local or GMT..)
    // The Unix time is number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). 
    unixTime = CkDateTime_GetAsUnixTime(dtTime,bLocalTime);
    printf("Unix time: %d\n",unixTime);

    // One can also get the as a "DtObj" object for accessing the individual
    // parts of the date/time, such as month, day, year, hour, minute, etc.
    // The DtObj can be obtained in the GMT or local timezone:
    dtObj = CkDtObj_Create();
    CkDateTime_ToDtObj(dtTime,bLocalTime,dtObj);

    if (CkDateTime_getLastMethodSuccess(dtTime) == FALSE) {
        printf("This should never really happen!\n");
        CkEmail_Dispose(email);
        CkDateTime_Dispose(dtTime);
        CkDtObj_Dispose(dtObj);
        return;
    }

    printf("%d-%d-%d %d:%d:%d\n",CkDtObj_getDay(dtObj),CkDtObj_getMonth(dtObj),CkDtObj_getYear(dtObj),CkDtObj_getHour(dtObj),CkDtObj_getMinute(dtObj)
        ,CkDtObj_getSecond(dtObj));


    CkEmail_Dispose(email);
    CkDateTime_Dispose(dtTime);
    CkDtObj_Dispose(dtObj);

    }