SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") dengan Format Rentetan Tarikh Z
Apabila menggunakan pembina SimpleDateFormat, anda telah menetapkan format tarikh sebagai "yyyy-MM-dd'T'HH:mm:ss'Z'". Aksara 'Z' di hujung rentetan format menunjukkan bahawa tarikh/masa berada dalam zon waktu UTC/GMT. Walau bagaimanapun, anda telah menghadapi isu di mana output memaparkan zon waktu IST dan bukannya GMT/UTC.
Ini berlaku kerana anda tidak menetapkan zon waktu secara eksplisit untuk objek SimpleDateFormat. Walaupun aksara 'Z' menandakan tarikh dalam zon waktu UTC/GMT, ia tidak melaraskan objek tarikh/masa secara automatik ke zon waktu itu. Untuk memastikan zon waktu yang betul digunakan, anda perlu menetapkan zon waktu menggunakan kaedah setTimeZone.
Penyelesaian:
Untuk menyelesaikan isu ini, anda boleh menetapkan secara eksplisit zon waktu ke GMT/UTC menggunakan kod berikut:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Dengan menetapkan zon waktu secara eksplisit, Objek SimpleDateFormat akan mewakili tarikh/masa dengan tepat dalam zon waktu GMT/UTC dan output akan memaparkan masa yang betul.
Atas ialah kandungan terperinci Mengapakah `SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'')` Menunjukkan IST dan bukannya GMT/UTC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!