Nos últimos dois dias, estamos fazendo uma integração única com uma empresa conhecida de um cartão (nosso produto está escrito em Java e o programa da outra parte está escrito no .NET). Ou seja, o número de segundos em que o horário atual é em relação a 00:00:00 dC 1970-1-1. De acordo com a documentação que eles deram, completei a parte do Java.
A cópia do código é a seguinte:
private string createTeTimestamp () // timestamp
{
return system.currenttimemillis () / 1000 + "";
}
Use o método System.currenttimemillis () para obter os milissegundos a partir das 0:00:00 em 1º de janeiro de 1970, e dividir por 1000 é naturalmente o número de segundos. Mas um acidente aconteceu.
O tempo gerado pelo .NET é o horário atual do fuso horário atual, enquanto o método CurrentTimemillis () de Java é a hora do GMT. O fuso horário onde a China está localizada é a zona +8, então a diferença horária é de 8 horas!
Então, quando os sapatos infantis encontram o tempo inconsistente entre .NET e Java, considere o fuso horário com mais frequência e talvez você possa encontrar uma solução :)
Claro que vou dar uma solução:
Método 1: Adicione parâmetros quando a JVM estiver executada, especifique o fuso horário -d user.TimeZone = GMT+08
Método 2: Defina o fuso horário diretamente no programa. System.setProperty ("User.TimeZone", "GMT +08");
Método 3: Basta adicionar 28800 (8hours*60min*60sec = 28800)