Rumah >Java >javaTutorial >Mengapakah 'Y' `SimpleDateFormat` Mengembalikan 2012 Manakala 'y' Mengembalikan 2011?
Mengapa 'Y' Mengembalikan 2012 Manakala 'y' Mengembalikan 2011 dalam SimpleDateFormat
SimpleDateFormat menyediakan pilihan untuk memformat tarikh menggunakan corak yang berbeza. Dua corak biasa, 'Y' dan 'y', masing-masing mewakili tahun minggu dan tahun. Walau bagaimanapun, tingkah laku mereka boleh mengelirukan.
Perbezaan antara 'Y' dan 'y'
'Y': Mewakili tahun minggu, yang sejajar dengan kitaran WEEK_OF_YEAR. Tahun minggu mungkin bertindih dengan tahun kalendar, seperti yang dijelaskan dalam dokumentasi Java:
Setahun seminggu adalah selari dengan kitaran WEEK_OF_YEAR. Semua minggu antara minggu pertama dan minggu terakhir (termasuk) mempunyai nilai tahun minggu yang sama. Oleh itu, hari pertama dan terakhir dalam satu minggu tahun mungkin mempunyai nilai tahun kalendar yang berbeza.
Penjelasan Contoh
Dalam contoh yang diberikan, 'y' mengembalikan 2011 kerana tarikh semasa adalah pada hari-hari awal Januari 2012. Walau bagaimanapun, 'Y' kembali 2012 kerana tahun minggu (kitaran WEEK_OF_YEAR) yang merangkumi Januari 2012 berlanjutan ke penghujung 2011. Dokumentasi menjelaskan bahawa hari pertama tahun kalendar mungkin milik tahun minggu sebelumnya.
Contoh Kod
SimpleDateFormat sdf = new SimpleDateFormat("Y"); Date date = new Date(); // Current date // Print the week year (2012) System.out.println(sdf.format(date)); sdf = new SimpleDateFormat("y"); // Print the calendar year (2011) System.out.println(sdf.format(date));
Atas ialah kandungan terperinci Mengapakah 'Y' `SimpleDateFormat` Mengembalikan 2012 Manakala 'y' Mengembalikan 2011?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!