Rumah >Java >javaTutorial >Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Menunjukkan IST dan bukannya UTC?

Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Menunjukkan IST dan bukannya UTC?

Barbara Streisand
Barbara Streisandasal
2024-12-16 10:57:11761semak imbas

Why Does SimpleDateFormat(

SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") Memaparkan Zon Waktu sebagai IST

The SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") direka bentuk untuk menghuraikan rentetan tarikh dalam Format ISO-8601. Walau bagaimanapun, akhiran 'Z' sahaja tidak menetapkan zon waktu untuk tarikh yang dihuraikan.

Isu anda timbul apabila anda menggunakan format ini untuk menghuraikan rentetan tarikh seperti "2013-09-29T18:46:19Z". Memandangkan 'Z' mewakili masa Zulu (UTC), anda mungkin menjangkakan tarikh yang dihuraikan akan dipaparkan sebagai UTC. Walau bagaimanapun, anda menghadapi zon waktu IST (Waktu Piawai India) yang dipaparkan.

Memahami Isu

Kuncinya di sini ialah anda belum menetapkan secara eksplisit zon waktu untuk objek SimpleDateFormat. Akibatnya, ia lalai kepada zon waktu lalai JVM, yang berkemungkinan IST dalam kes anda. Jadi, sementara rentetan tarikh menggunakan akhiran 'Z' untuk menunjukkan UTC, objek SimpleDateFormat menghuraikannya dalam IST.

Menyelesaikan Isu

Untuk menyelesaikan masalah ini dan pastikan tarikh yang dihuraikan dipaparkan dalam UTC, tetapkan zon waktu untuk SimpleDateFormat secara eksplisit kepada GMT menggunakan:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

Dengan menetapkan zon waktu kepada GMT, anda memberitahu SimpleDateFormat untuk menghuraikan rentetan tarikh dalam UTC, walaupun ia mempunyai akhiran 'Z'. Ini menjamin tarikh yang dihuraikan dipaparkan dengan betul dalam UTC.

Atas ialah kandungan terperinci Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Menunjukkan IST dan bukannya UTC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn