Public Domain
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    time_t t;
    struct tm *tm;
    char str[200];
    t = time(NULL);
    tm = localtime(&t);
        if (tm == NULL) {
                perror("localtime");
                exit(EXIT_FAILURE);
        }
    if (strftime(str, sizeof(str), "%a %b %e %T %Z %Y", tm) == 0) {
            fprintf(stderr, "strftime returned 0");
            exit(EXIT_FAILURE);
    }
    printf("strftime is %s\n", str);
    tm = localtime(&t);
    printf("\n--Local Time--\n");
    printf("tm->tm_sec: %d\n", tm->tm_sec);
    printf("tm->tm_min: %d\n", tm->tm_min);
    printf("tm->tm_hour: %d\n", tm->tm_hour);
    printf("tm->tm_mday: %d\n", tm->tm_mday);
    printf("tm->tm_mon: %d\n", tm->tm_mon);
    printf("tm->tm_year: %d\n", tm->tm_year);
    printf("tm->tm_wday: %d\n", tm->tm_wday);
    printf("tm->tm_yday: %d\n", tm->tm_yday);
    printf("tm->tm_isdst: %d\n", tm->tm_isdst);
    tm = gmtime(&t);
    printf("\n--Greenwich Time--\n");
    printf("tm->tm_sec: %d\n", tm->tm_sec);
    printf("tm->tm_min: %d\n", tm->tm_min);
    printf("tm->tm_hour: %d\n", tm->tm_hour);
    printf("tm->tm_mday: %d\n", tm->tm_mday);
    printf("tm->tm_mon: %d\n", tm->tm_mon);
    printf("tm->tm_year: %d\n", tm->tm_year);
    printf("tm->tm_wday: %d\n", tm->tm_wday);
    printf("tm->tm_yday: %d\n", tm->tm_yday);
    printf("tm->tm_isdst: %d\n", tm->tm_isdst);
    return 0;
}
Output
    strftime is Thu Jan 16 00:40:36 IRST 2014
    --Local Time--
    tm->tm_sec: 36
    tm->tm_min: 40
    tm->tm_hour: 0
    tm->tm_mday: 16
    tm->tm_mon: 0
    tm->tm_year: 114
    tm->tm_wday: 4
    tm->tm_yday: 15
    tm->tm_isdst: 0
    --Greenwich Time--
    tm->tm_sec: 36
    tm->tm_min: 10
    tm->tm_hour: 21
    tm->tm_mday: 15
    tm->tm_mon: 0
    tm->tm_year: 114
    tm->tm_wday: 3
    tm->tm_yday: 14
    tm->tm_isdst: 0
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
    struct tm tm;
    char str[255];
    memset(&tm, 0, sizeof(struct tm));
    strptime("2014-01-16 00:01:54", "%Y-%m-%d %H:%M:%S", &tm);
    strftime(str, sizeof(str), "%d %b %Y %H:%M", &tm);
    puts(str);
    exit(EXIT_SUCCESS);
}
Output
16 Jan 2014 00:01
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
    struct tm *tm = malloc(sizeof(struct tm));
    time_t t;
    char str[200];
    memset((void *)tm, 0, sizeof(struct tm));
    tm->tm_sec   = 13;
    tm->tm_min   = 13;
    tm->tm_hour  = 13;
    tm->tm_mday  = 10;
    tm->tm_mon   = 0;
    tm->tm_year  = 100;
    tm->tm_isdst = 0; 
    t = mktime(tm);
    tm = localtime(&t);
    strftime(str, sizeof(str), "%F %T", tm);
    printf("localtime is %s\n", str);
    tm = gmtime(&t);
    strftime(str, sizeof(str), "%F %T", tm);
    printf("greenwich is %s\n", str);
    return 0;
}
Output
localtime is 2000-01-10 13:13:13
greenwich is 2000-01-10 09:43:13
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <time.h>
int main()
{
    struct timeval tv;
    struct tm *tm;
    char str[200];
    if(gettimeofday(&tv, NULL) == -1 ) {
            perror("gettimeofday");
            exit(EXIT_FAILURE);
    }
    printf("tv->tv_sec: %d\n", tv.tv_sec);
    printf("tv->tv_usec: %d\n", tv.tv_usec);
    strftime(str, sizeof(str), "%a %b %e %T %Z %Y", localtime(&tv.tv_sec));
    printf("strftime is %s\n", str);
    exit(EXIT_SUCCESS);
}
Output
tv->tv_sec: 1389879829
tv->tv_usec: 314898
strftime is Thu Jan 16 17:13:49 IRST 2014
BY: Pejman Moghadam 
TAG: c, date, time, strftime 
DATE: 2014-01-16 17:14:22