Rumah >Java >javaTutorial >SimpleDateFormat: Mengapa 'Y' Menunjukkan Tahun Berbeza Daripada 'y'?

SimpleDateFormat: Mengapa 'Y' Menunjukkan Tahun Berbeza Daripada 'y'?

Barbara Streisand
Barbara Streisandasal
2024-12-31 06:31:09257semak imbas

SimpleDateFormat: Why Does 'Y' Show a Different Year Than 'y'?

Dalam SimpleDateFormat, Mengapa 'Y' Mengembalikan 2012 Manakala 'y' Mengembalikan 2011?

Tingkah laku yang anda perhatikan, di mana 'Y' cetakan 2012 dan 'y' cetakan 2011 untuk objek Tarikh yang sama, disebabkan oleh perbezaan halus antara tahun minggu dan tahun kalendar.

Tahun Minggu lwn. Tahun Kalendar

Dalam pemformatan tarikh, 'Y' mewakili tahun minggu, yang sejajar dengan tahun kalendar, tetapi kadangkala boleh berbeza kerana cara minggu dikira. Tahun minggu bermula pada hari Ahad minggu pertama tahun itu, dan berakhir pada hari Sabtu minggu terakhir tahun itu.

Sebaliknya, 'y' mewakili tahun kalendar, iaitu tahun tahun kalendar Gregorian tradisional yang bermula pada 1 Januari.

Dalam contoh anda, objek Tarikh yang anda gunakan jatuh dalam minggu pertama 2012 mengikut tahun minggu pengiraan, tetapi ia jatuh dalam minggu terakhir 2011 mengikut pengiraan tahun kalendar. Hasilnya, 'Y' mencetak 2012 (tahun minggu) dan 'y' mencetak 2011 (tahun kalendar).

Untuk menggambarkan lagi konsep ini, pertimbangkan contoh berikut:

System.out.println(new SimpleDateFormat("Y").format(new Date("December 29, 1997"))); // prints 1998
System.out.println(new SimpleDateFormat("y").format(new Date("December 29, 1997"))); // prints 1997

Dalam kes ini, 'Y' mencetak tahun 1998 kerana tarikh itu jatuh dalam minggu pertama dalam minggu itu, walaupun secara teknikal ia adalah minggu terakhir 1997. 'y', bagaimanapun, mencetak 1997 kerana itu adalah tahun kalendar untuk tarikh yang diberikan.

Atas ialah kandungan terperinci SimpleDateFormat: Mengapa 'Y' Menunjukkan Tahun Berbeza Daripada 'y'?. 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