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

Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Menunjukkan IST Daripada UTC dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Susan Sarandonasal
2024-12-13 20:03:13443semak imbas

Why Does SimpleDateFormat(

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

Di Java, kelas SimpleDateFormat membolehkan anda memformat dan menghuraikan tarikh mengikut corak yang telah ditetapkan. Apabila menggunakan corak "yyyy-MM-dd'T'HH:mm:ss'Z'", ia dijangka mewakili tarikh dan masa dalam zon waktu UTC. Walau bagaimanapun, isu timbul apabila menghuraikan rentetan sedemikian.

Pertimbangkan kod berikut:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = sdf.parse("2013-09-29T18:46:19Z");
System.out.println(date);

Output yang dijangkakan ialah tarikh dan masa dalam zon waktu UTC. Walau bagaimanapun, ramai pengguna telah melaporkan bahawa ia sebaliknya memaparkan tarikh dan masa dalam zon waktu IST (Indian Standard Time). Ini membawa kepada kekeliruan dan pengendalian tarikh yang salah.

Penyelesaian: Tetapkan Zon Waktu Secara Eksplisit

Isu timbul kerana pembina SimpleDateFormat hanya memulakan corak tarikh tetapi tidak menetapkan zon waktu secara eksplisit. Untuk membetulkan ini, anda perlu menetapkan zon waktu kepada UTC secara manual. Begini cara anda melakukannya:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = sdf.parse("2013-09-29T18:46:19Z");
System.out.println(date);

Dengan menetapkan zon waktu kepada GMT, penghurai SimpleDateFormat akan mentafsir rentetan input dengan betul dan memaparkan tarikh dan masa dalam zon waktu UTC yang dijangkakan.

Atas ialah kandungan terperinci Mengapa SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') Menunjukkan IST Daripada UTC dan Bagaimana Saya Boleh Membetulkannya?. 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