Comment formater un timestamp Java.sql à mon goût? (à une chaîne, pour l'affichage)
Java.sql.Timestamp
S'étend Java.util.Date
. Tu peux faire:
String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);
Ou d'inclure également le temps:
String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);
Utilisez String.format (ou Java.util.Formatter ):
Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)
EDIT:
veuillez consulter la documentation de Formatter pour savoir ce que TD et TT signifie: cliquez sur Java.util.Formatter =
Le premier 'T' signifie:
't', 'T' date/time Prefix for date and time conversion characters.
et le caractère qui suit ce 'T':
'T' Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D' Date formatted as "%tm/%td/%ty".
Pour cette question particulière, la suggestion standard de Java.text.SimpleDateFormat
fonctionne, mais a l’effet secondaire malheureux que SimpleDateFormat
n’est pas thread-safe et peut être la source de problèmes particulièrement désagréables car elle corrompra votre sortie dans des scénarios multithreads, et vous n’obtiendrez aucune exception!
Je voudrais fortement recommande de regarder Joda pour quelque chose comme ça. Pourquoi ? C'est une bibliothèque temps/date beaucoup plus riche et plus intuitive pour Java que la bibliothèque actuelle (et la base du nouveau standard en cours Java date/time library, vous apprendrez donc une API bientôt standard).
Si vous utilisez MySQL et souhaitez que la base de données effectue elle-même la conversion, utilisez ceci:
Si vous préférez formater en Java, utilisez ceci:
SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
Utilisez un DateFormat
. Dans une application internationalisée, utilisez le format fourni par getInstance
. Si vous souhaitez contrôler explicitement le format, créez vous-même un nouveau SimpleDateFormat
.