web-dev-qa-db-fra.com

Comment formater un timestamp Java.sql pour l'affichage?

Comment formater un timestamp Java.sql à mon goût? (à une chaîne, pour l'affichage)

97
nos

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);
156
ChssPly76

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". 
24
Carlos Heuberger

Pour cette question particulière, la suggestion standard de Java.text.SimpleDateFormat fonctionne, mais a l’effet secondaire malheureux que SimpleDateFormatn’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).

9
Brian Agnew

Si vous utilisez MySQL et souhaitez que la base de données effectue elle-même la conversion, utilisez ceci:

DATE_FORMAT (date, format)

Si vous préférez formater en Java, utilisez ceci:

Java.text.SimpleDateFormat

SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
8
DreadPirateShawn

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 .

2
erickson