Pourquoi 'Y' renvoie 2012 alors que 'y' renvoie 2011 dans SimpleDateFormat
SimpleDateFormat fournit des options pour formater les dates en utilisant différents modèles. Deux modèles courants, « Y » et « y », représentent respectivement l'année et l'année de la semaine. Cependant, leur comportement peut prêter à confusion.
Différence entre 'Y' et 'y'
'Y' : Représente l'année de la semaine, qui est alignée sur le cycle WEEK_OF_YEAR. Les années hebdomadaires peuvent chevaucher les années civiles, comme expliqué dans la documentation Java :
Une année hebdomadaire est synchronisée avec un cycle WEEK_OF_YEAR. Toutes les semaines entre la première et la dernière semaine (incluse) ont la même valeur semaine-année. Par conséquent, les premier et dernier jours d'une semaine d'année peuvent avoir des valeurs d'année civile différentes.
Explication de l'exemple
Dans l'exemple donné, « y » renvoie 2011 car la date actuelle se situe au début de janvier 2012. Cependant, « Y » renvoie 2012 car l'année hebdomadaire (cycle WEEK_OF_YEAR) qui comprend janvier 2012 s'étend jusqu'à la fin de 2011. La documentation explique que les premiers jours d'une année civile peuvent appartenir à l'année hebdomadaire précédente.
Exemple de code
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));
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!