Coordinando el tiempo
La hora en internet es en ocasiones algo complicado para algunas personas, ya que estan interconectadas personas de practicamente todos los usos horarios que existen. Una manera de normalizar y facilitar la comunicacion es el empleo del Tiempo Universal Coordinado o UTC.
Crearemos una sencilla aplicacion para visualizar claramente como obtener el UTC desde una amplia red de servidores fiables que usan el Network Time Protocol o NTP, el cual esta vigente desde 1981 y es uno de los mas antiguos protocolos aun activos en Internet: cuando algo funciona perfectamente no es necesario cambiarlo.
La unidad Indy para lazarus incluye un cliente para conectarse a dicha red: TIdSNTP. Lo que haremos es buscar algunos servidores de NTP y contrastarlo con la hora del computador del usuario para verificar si es correcta. Los servidores NTP dan una respuesta en formato DateTime, por lo que es necesario aplicar una funciones para convertirlo en formato TimeUnix.
Time utility
- Unix Time Server: Es el resultado que nos da el servidor NTP (en este caso, ntp.amnic.net) en formato UNIX (en adelante le llamaremos a este formato timestamp)
- Local TimeStamp: Es el timestamp que posee el reloj interno de la computadora donde se ejecuta el programa.
- UTC diference: Es la diferencia de tiempo (en segundos) entre el reloj de la computadora y la hora UTC. La formula es : UTC time = Local time + UTC diference. Se obtiene con la funcion 'GetLocalTimeOffset'.
- UTC Timestamp: Es el timestamp de la hora UTC; se obtiene de la suma de la hora local y la UTC diference.
- UTCTime : Es la hora UTC en formato DateTime.
Comentarios
Publicar un comentario