Kekeliruan dalam SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") Tafsiran Zon Waktu
Dalam java, SimpleDateFormat membenarkan pengguna menghuraikan dan memformat tarikh menggunakan corak yang ditentukan. Apabila menggunakan corak "yyyy-MM-dd'T'HH:mm:ss'Z'", jangkaan ialah 'Z' mewakili zon waktu GMT/UTC. Walau bagaimanapun, terdapat kebimbangan bahawa tarikh yang terhasil menunjukkan zon waktu IST dan bukannya zon waktu GMT yang dijangkakan.
Penjelasan
Watak 'Z' dalam corak sememangnya menandakan zon waktu GMT/UTC. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa hanya menambah 'Z' pada rentetan tarikh/masa tidak mengubah nilai secara ajaib. Zon waktu mesti ditetapkan secara eksplisit untuk objek SimpleDateFormat menggunakan kaedah setTimeZone.
Menyelesaikan Isu
Untuk memastikan tarikh output mencerminkan zon waktu GMT/UTC dengan betul, seseorang itu perlu menetapkan zon waktu secara eksplisit kepada GMT menggunakan baris berikut kod:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Dengan menetapkan zon waktu, objek SimpleDateFormat akan mentafsirkan 'Z' dengan betul sebagai GMT/UTC dan memaparkan tarikh dalam zon waktu yang dikehendaki.
Atas ialah kandungan terperinci Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Kadangkala Menunjukkan IST dan bukannya GMT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!