Lorsque vous travaillez avec des données horodatées, il est souvent nécessaire de convertir un entier long représentant le nombre de millisecondes écoulées depuis l'époque (1er janvier 1970) dans un format plus lisible et informatif, tel que "h:m:s:ms" (heures:minutes:secondes:millisecondes).
Dans le contexte de log4j, récupérer un horodatage d'un événement de journalisation peut être obtenu via le champ logEvent.timeStamp. Cependant, convertir cet horodatage en une heure formatée peut s'avérer difficile.
Approches incorrectes :
Tentatives de conversion directe des millisecondes à l'aide d'opérations telles que la division par le nombre de secondes dans une heure ou l'utilisation de la méthode TimeUnit.MILLISECONDS.toMinutes() donnera des résultats incorrects, car le processus de conversion implique plus qu'une simple arithmétique.
Solution correcte :
Pour convertir avec précision un horodatage milliseconde en une chaîne d'heure formatée, nous pouvons utiliser les capacités de formatage de date et d'heure intégrées de Java :
Date date = new Date(logEvent.timeStamp); DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS"); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); String dateFormatted = formatter.format(date);
Cet exemple illustre le processus de conversion :
Autres options de formatage :
L'API Java fournit une variété de modèles de date SimpleDateFormat pour prendre en charge différents styles de formatage. Voici quelques options courantes :
Pattern | Output |
---|---|
"h:m:s:ms" | 03:34:56:123 |
"EEE, MMM d, yyyy hh:mm:ss a" | Wed, Mar 17, 2023 03:34:56 PM |
"yyyy-MM-dd HH:mm:ss.SSS" | 2023-03-17 15:34:56.123 |
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!