Damage92
30-01-2010, 17:18
Salve!
Questo programma dovrebbe convertire una stringa formattata in un certo modo, in una data di tipo time_t (su linux ovviamente).
#include <stdio.h>
#include <time.h>
main()
{
char stringa[] = "Sat, 30 Jan 2010 18:04:00 UTC";
struct tm tempo;
time_t data;
strptime (stringa, "%A, %d %b %Y %H:%M:%S %z", &tempo);
data = mktime(&tempo);
printf("\n%ld\n", data);
}
Se lancio date -ud@<valore stampato> per vedere se ha convertito bene, mi da una data diversa, precisamente due ore prima... come se avesse usato un fuso orario. Ma nella stringa c'è scritto GMT, e anche il risultato del comando "date" riporta UTC!
Togliendo GMT dalla stringa il risultato è lo stesso, come se non lo prendesse in considerazione.
Questo programma dovrebbe convertire una stringa formattata in un certo modo, in una data di tipo time_t (su linux ovviamente).
#include <stdio.h>
#include <time.h>
main()
{
char stringa[] = "Sat, 30 Jan 2010 18:04:00 UTC";
struct tm tempo;
time_t data;
strptime (stringa, "%A, %d %b %Y %H:%M:%S %z", &tempo);
data = mktime(&tempo);
printf("\n%ld\n", data);
}
Se lancio date -ud@<valore stampato> per vedere se ha convertito bene, mi da una data diversa, precisamente due ore prima... come se avesse usato un fuso orario. Ma nella stringa c'è scritto GMT, e anche il risultato del comando "date" riporta UTC!
Togliendo GMT dalla stringa il risultato è lo stesso, come se non lo prendesse in considerazione.