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
Lepaskan: 2024-12-13 20:03:13
asal
511 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan