Comment afficher uniquement les deux derniers chiffres de l'année en cours sans utiliser d'algorithmes de sous-chaîne ou de bibliothèques tierces?
J'ai essayé la méthode ci-dessous et elle a donné une année à quatre chiffres. Je veux savoir s'il existe des options de formatage de date disponibles pour obtenir l'année en cours au format à deux chiffres.
Calendar.getInstance().get(Calendar.YEAR);
Vous pouvez utiliser un SimpleDateFormat
pour formater une date selon vos besoins.
DateFormat df = new SimpleDateFormat("yy"); // Just the year, with 2 digits
String formattedDate = df.format(Calendar.getInstance().getTime());
System.out.println(formattedDate);
Edit: Selon les besoins/exigences, soit l'approche suggérée par moi soit celle suggérée par Robin peut être utilisé. Idéalement, lors de nombreuses manipulations avec la Date, il est préférable d'utiliser une approche DateFormat
.
Vous pouvez simplement utiliser l'opérateur modulo:
int lastTwoDigits = Calendar.getInstance().get(Calendar.YEAR) % 100;
Modifier: L'utilisation d'un SimpleDateFormat
, comme l'a proposé @ R.J, est la meilleure solution si vous voulez que le résultat soit une chaîne. Si vous avez besoin d'un entier, utilisez modulo.
Ceci est une ligne:
System.out.println(Year.now().format(DateTimeFormatter.ofPattern("uu")));
J'utilise Java.time.Year
, L'une des nombreuses classes de date et d'heure introduites dans Java 8 (et également rétroportée vers Java 6 et 7) C'est juste un petit exemple parmi tant d'autres où les nouvelles classes sont plus pratiques et conduisent à un code plus clair que les anciennes classes Calendar
et SimpleDateFormat
.
Si vous vouliez simplement le nombre à deux chiffres, pas comme une chaîne, vous pouvez utiliser:Year.now().getValue() % 100
.
Les autres réponses étaient de bonnes réponses en 2013, mais les années ont évolué. :-)