Tengo una configuración de equipo de servidor donde necesito cambiar la configuración de fecha de equipamiento, usando UDP. El servidor está escrito en Java y el equipo, en Delphi.Fecha de conversión en Java a entero y luego a Delphi Time
Así, el flujo de los datos es la siguiente:
Java server (Java date) -> UDP (integer date) -> Delphi equipment (Delphi date)
El problema es que cuando paso de la fecha como un entero, java calcula milisegundos desde 1970, y Delphi, segundo. Paso la fecha como sigue: today.getTime()/1000
, pero el equipo entiende esto como una fecha de 2008, cuando estamos en 2012.
Puedo cambiar el código de Java, pero el equipo es de terceros y no tengo acceso a su código fuente
¿Hay diferencia entre el análisis de fechas de Delphi y Java que permite esta discrepancia?
EDIT: Gracias a MДΓΓ БДLL Noté que estaba multiplicando por 1,000 en lugar de dividir por ella, ahora tengo una fecha mejor, pero sigue siendo incorrecto (en algún tiempo fue en el 2033, ahora es en 2008).
No entiendo completamente. Tienes que pasar de milisegundos desde 1970 a segundos (¿desde 1970?) Pero estás multiplicando por 1000? Milisegundos => segundos significa _divide_ por 1000. –
No conozco ningún tipo de fecha en Delphi que sea segundos desde 1970. ¿Estás seguro de que esta es una pregunta de Delphi? –
Doh! De hecho, estaba multiplicando en lugar de dividir ... pero todavía no solucionó el problema, vea la edición –