генерировать строку даты в формате ответа HTTP-ответ на C - PullRequest
5 голосов
/ 26 сентября 2011

Я пытаюсь сгенерировать строку даты из текущего времени, чтобы поместить ее в заголовок ответа HTTP. Это выглядит так:

Date: Tue, 15 Nov 2010 08:12:31 GMT

У меня есть только библиотека C по умолчанию для работы. Как мне это сделать?

Ответы [ 3 ]

19 голосов
/ 26 сентября 2011

Использование strftime(), заявлено в <time.h>.

#include <stdio.h>
#include <time.h>

int main(void) {
  char buf[1000];
  time_t now = time(0);
  struct tm tm = *gmtime(&now);
  strftime(buf, sizeof buf, "%a, %d %b %Y %H:%M:%S %Z", &tm);
  printf("Time is: [%s]\n", buf);
  return 0;
}

См. Код , работающий на кодовой панели .

0 голосов
/ 26 сентября 2011

Проверьте, есть ли у вашей платформы strftime: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html.

0 голосов
/ 26 сентября 2011

Используйте gmtime (3) + mktime (3).В итоге вы получите структуру, содержащую всю эту информацию.

struct tm {
    int tm_sec;         /* seconds */
    int tm_min;         /* minutes */
    int tm_hour;        /* hours */
    int tm_mday;        /* day of the month */
    int tm_mon;         /* month */
    int tm_year;        /* year */
    int tm_wday;        /* day of the week */
    int tm_yday;        /* day in the year */
    int tm_isdst;       /* daylight saving time */
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...