En los últimos dos días, hemos estado realizando una sola integración de inicio de sesión con una compañía de una tarjeta conocida (nuestro producto está escrito en Java, y el programa de la otra parte está escrito en .NET). Es decir, el número de segundos que la hora actual es relativa a las 00:00:00 d. C. 1970-1-1. Según la documentación que dieron, completé la parte de Java.
La copia del código es la siguiente:
String private CreateTimestamp () // TimeStamp
{
return System.CurrentTimemillis () / 1000 + "";
}
Use el método System.CurrentTimemillis () para obtener los milisegundos a partir de las 0:00:00 el 1 de enero de 1970, y dividir en 1000 es naturalmente el número de segundos. Pero ocurrió un accidente.
El tiempo generado por .NET es la hora actual de la zona horaria actual, mientras que el método CurrentTimEmEmillis () de Java es el tiempo de GMT. La zona horaria donde se encuentra China es la zona +8, ¡por lo que la diferencia horaria es de 8 horas!
Entonces, cuando los zapatos para niños encuentren el tiempo inconsistente entre .NET y Java, considere la zona horaria con más frecuencia, y tal vez pueda encontrar una solución :)
Por supuesto que daré una solución:
Método 1: Agregue parámetros cuando se ejecute JVM, especifique la zona horaria -d user.timezone = gmt+08
Método 2: Establezca la zona horaria directamente en el programa. System.SetProperty ("User.Timezone", "GMT +08");
Método 3: Simplemente agregue 28800 (8 horas*60min*60 segundos = 28800)