Sto usando la funzione mktime (struct tm *) in Suse 10.Comportamento confuso di mktime su Linux?
Ora, noto un comportamento strano quando è abilitata l'ora legale. Diciamo che ho attivato l'ora legale per iniziare il 15 settembre alle 18:10 e la correzione della luce del giorno è per 30 minuti. Ora, quando chiamo mktime con la struttura tm che ha la data come Sep 15 18:10 e tm_isdst è impostato su 0, allora torno gli stessi valori nella struttura tm solo con tm_isdst impostato su 1.
Ma, se il passaggio la data come Sep 15 18:10 con tm_isdst impostato su 1, quindi trovo il tempo è cambiato in 17:40. Questa correzione nella struttura tm viene rilevata per il tempo trascorso tra il 15 settembre 18:10 e il 15 settembre alle 18:40, ma successivamente non avviene alcuna correzione nel tempo e il flag dst rimane abilitato. Anche se passo la data come Sep 16 18:10, nessuna correzione temporale si verifica solo il flag dst rimane abilitato.
Sono totalmente confuso. È questo il comportamento corretto di mktime?
Non lo so.Forse non è definito passare il tempo 18:10 (dst 0) a mktime, ma penso che la cosa più utile per tornare in quel caso sarebbe stata 18:40 (dst 1) –