Dalam dua hari terakhir, kami telah melakukan integrasi masuk tunggal dengan perusahaan satu kartu yang terkenal (produk kami ditulis di Java, dan program pihak lain ditulis dalam .NET). Artinya, jumlah detik bahwa waktu saat ini relatif terhadap 00:00:00 M 1970-1-1. Menurut dokumentasi yang mereka berikan, saya menyelesaikan bagian Java.
Salinan kode adalah sebagai berikut:
private string createTimestamp () // timestamp
{
return system.currentTimemillis () / 1000 + "";
}
Gunakan metode System.currentTimemillis () untuk mendapatkan milidetik dari 0:00:00 pada 1 Januari 1970, dan membagi dengan 1000 secara alami jumlah detik. Tetapi kecelakaan terjadi.
Waktu yang dihasilkan oleh .NET adalah waktu saat ini dari zona waktu saat ini, sedangkan metode java arus saat ini adalah waktu dari GMT. Zona waktu di mana Cina berada adalah zona +8, jadi perbedaan waktu adalah 8 jam!
Jadi ketika sepatu anak -anak menemukan waktu yang tidak konsisten antara .net dan java, pertimbangkan zona waktu lebih sering, dan mungkin Anda dapat menemukan solusi :)
Tentu saja saya akan memberikan solusi:
Metode 1: Tambahkan parameter saat JVM berjalan, tentukan zona waktu -d user.timezone = GMT+08
Metode 2: Atur zona waktu langsung dalam program. System.setProperty ("user.timezone", "GMT +08");
Metode 3: Cukup tambahkan 28800 (8 jam*60 menit*60sec = 28800)