Друзья, помогите пожалуйста с задачкой:
есть дата - 10.02.08 10:50:12, необходимо перевести в секунды (linux формат). Всю голову сломал.. может кто сталкивался? (С\С++)
>Друзья, помогите пожалуйста с задачкой:
>есть дата - 10.02.08 10:50:12, необходимо перевести в секунды (linux формат). Всю$ date -d "2008-02-10 10:50:12"
Вск Фев 10 10:50:12 MSK 2008
$ date -d "2008-02-10 10:50:12" +%s
1202629812
$ _>голову сломал.. может кто сталкивался? (С\С++)
Опустить глаза (осторожно, не сломайте!) ниже и почитать (тяжело, но надо же себя заставлять!) про "Как получить время заданного форамата (+долисекунды) в С" - http://www.opennet.me/openforum/vsluhforumID9/7672.html .
Во-о-от... Дальше - самое тяжёлое, чему учат примерно в старшей группе детсада: сложить из имеющихся кубиков желаемый доми^Wрезультат. Дерзайте, Вы сможете!
>Друзья, помогите пожалуйста с задачкой:
>есть дата - 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
Спасибо огромное!