Au cours des deux derniers jours, nous avons fait une intégration de connexion unique avec une entreprise à une carte bien connue (notre produit est écrit en Java, et le programme de l'autre partie est écrit en .NET). C'est-à-dire le nombre de secondes que l'heure actuelle est relative à 00:00:00 après JC 1970-1-1. Selon la documentation qu'ils ont donnée, j'ai terminé la partie Java.
La copie de code est la suivante:
String privé CreateTimeStamp () // Timestamp
{
return System.currentTimemillis () / 1000 + "";
}
Utilisez la méthode System.Currenttimemillis () pour obtenir les millisecondes à partir de 0h00 du 1er janvier 1970, et diviser par 1000 est naturellement le nombre de secondes. Mais un accident s'est produit.
Le temps généré par .NET est l'heure actuelle du fuseau horaire actuel, tandis que la méthode CurrentTimemillis () de Java est le temps de GMT. Le fuseau horaire où se trouve la Chine est une zone +8, donc le décalage horaire est de 8 heures!
Ainsi, lorsque les chaussures pour enfants rencontrent le temps incohérent entre .net et Java, considérez le fuseau horaire plus souvent, et peut-être que vous pouvez trouver une solution :)
Bien sûr, je vais donner une solution:
Méthode 1: Ajouter des paramètres lorsque JVM s'exécute, spécifiez le fuseau horaire -d User.TimeZone = GMT + 08
Méthode 2: Définissez le fuseau horaire directement dans le programme. System.SetProperty ("User.TimeZone", "GMT +08");
Méthode 3: Il suffit d'ajouter 28800 (8 heures * 60min * 60sec = 28800)