Cette question aborde comment afficher uniquement les deux derniers chiffres de l'année à partir d'un objet Java Date
. La classe Date
elle-même est largement dépréciée en Java moderne, après avoir été remplacée par le package java.time
. Cependant, si vous travaillez avec le code hérité ou si une contrainte spécifique nécessite l'utilisation de Date
, nous pouvons y parvenir en utilisant SimpleDateFormat
. Il est crucial de se rappeler que SimpleDateFormat
n'est pas un filetage, alors envisagez d'utiliser ThreadLocal
si vous travaillez dans un environnement multithread.
import java.text.SimpleDateFormat; import java.util.Date; public class TwoDigitYear { public static void main(String[] args) { Date date = new Date(); // Current date and time SimpleDateFormat formatter = new SimpleDateFormat("yy"); // "yy" for two-digit year String twoDigitYear = formatter.format(date); System.out.println("Two-digit year: " + twoDigitYear); } }
Cet extrait de code crée un objet SimpleDateFormat
avec la chaîne de format "YY", qui l'indique spécifiquement pour formater l'année en utilisant uniquement ses deux derniers chiffres. The format()
method then applies this format to the current Date
object, resulting in a string containing the two-digit year representation.
This question is essentially a reiteration of the first, but let's approach it from a slightly different angle, emphasizing the use of the java.time
API for better clarity, lisibilité et sécurité des fils. Le package java.time
fournit une approche plus robuste et moderne de la manipulation de la date et de l'heure.
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class TwoDigitYearJavaTime { public static void main(String[] args) { LocalDate today = LocalDate.now(); // Get the current date DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yy"); // Use yy for two-digit year String twoDigitYear = today.format(formatter); System.out.println("Two-digit year: " + twoDigitYear); } }
Cet exemple utilise LocalDate
de java.time
, qui représente une date sans heure de la journée. La classe DateTimeFormatter
fournit un moyen plus flexible et plus sécurisé de formater les dates par rapport à SimpleDateFormat
.
Bien que SimpleDateFormat
puisse fonctionner, ce n'est pas l'approche la plus efficace, en particulier dans les applications élevées. Les problèmes d'efficacité découlent principalement de ses problèmes de sécurité en fil. Comme mentionné précédemment, l'API java.time
offre une efficacité supérieure et une sécurité de fil. Par conséquent, l'utilisation de LocalDate
et DateTimeFormatter
(comme indiqué dans la réponse précédente) est le moyen le plus efficace, même si la question mentionne explicitement la classe Date
. Si vous devez absolument utiliser Date
, l'exemple fourni SimpleDateFormat
est acceptable, mais soyez conscient de ses limitations de filetage.
pour atténuer ces risques, toujours stocker et traiter les dates avec quatre chiffres. Former uniquement la sortie à deux chiffres lorsqu'il est absolument nécessaire pour l'affichage, et assurer un contexte suffisant est fourni pour éviter l'ambiguïté. L'utilisation de l'API java.time
est fortement recommandée pour ses fonctionnalités améliorées et sa gestion des erreurs.
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!