Nemyslím si, že to, co tvrdíš, je pravda. Některé servery evidentně vrací čas v UTC, jiné v lokálním čase. Respektive je možné, že ntp server umí poslat obě hodnoty. Měl jsem nastavený nějaký server a měl jsem čas synchronizovaný, nicméně na UTC. Po změně primárního serveru na ntp.nic.cz je čas synchronizovaný na pásmo střední Evropy.
Samotnou změnou serveru tedy je možné měnit synchronizaci z UTC na lokální, takže není žádný přepočet potřeba.
to co píšeš je bohužel mimo mísu... NTP nepředává jiný čas než UTC ... dále tvůj systém nepoužívá jiný čas než UTC
to že na hodinách i jinde vydíš lokální čas je výsledek přepočtu, který se koná při každé operaci s datem !!!
malý důkaz
MySQL SELECT UNIX_TIMESTAMP( '20120101000000' ), 1325376000, NOW( ) ;
vráti ti dvě stejné hodnoty ... nevrátí
v PHP <?php header('Cache-Control: no-cache, no-store, must-revalidate', true); header('Expires: '.gmdate('D, d M Y H:i:s', time()).' GMT', true); echo strtotime('20120101000000').' = 1325376000 ANO
'; ?>
bohužel taky vrátí ne ...
takže pokud potřebuješ uložit absolutně přesný okamžit kdy k tomu došlo musíš přepínat PHP pro jednotlivé operace na UTC, při zápise do databáze a konverzích na unixtime rozlišovat časy loklání a utc ... a nejlepší nakonec ke každému času by jsi si měl uložit GMT odchylku
protože když se tě teď zeptám co jsi dělal v 31.7.2012 23:59 ... řekneš mi A, ale za půl roku mi řekneš B, protože se díky změně letního času budeš dívat na 31.7.2012 22:59