web-dev-qa-db-fra.com

Affichage des deux derniers chiffres de l'année en cours en Java

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);
19
нαƒєєz

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.

36
SudoRahul

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.

67
Robin Krahl

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é. :-)

6
Ole V.V.