>Друзья, помогите пожалуйста с задачкой:
>есть дата - 10.02.08 10:50:12, необходимо перевести в секунды (linux формат). Всю
>голову сломал.. может кто сталкивался? (С\С++) А сам?
man strptime
man mktime
Вот пример:
#define _XOPEN_SOURCE /* glibc2 needs this */
#include <time.h>
#include <stdio.h>
int main(void) {
const char date[] = "10.02.08 10:50:12";
struct tm tm;
char *ret = strptime(date, "%d.%m.%y %T", &tm);
if (ret == NULL) {
fprintf(stderr, "strptime(3) error: can't parse date!\n");
return 1;
}
time_t time = mktime(&tm);
if (time == (time_t)-1) {
fprintf(stderr, "mktime(3) fails with error: can't convert date to time!\n");
return 1;
}
printf("%s is %ld\n", date, time);
return 0;
}
Собираем:
user-desktop% gcc -W -Wall strptime_test.c -o strptime_test
user-desktop% ./strptime_test
10.02.08 10:50:12 is 1202619012
Проверяем:
user-desktop% date -d "2008-02-10 10:50:12" +%s
1202619012