Votre question est vague et ambiguë. Je vais laisser de côté l'ambiguïté du fuseau horaire.
Je soupçonne que vous obtenez en quelque sorte un long
ou peut-être une String
valeur de la BD au lieu d'une Date
. Dans JDBC, vous souhaitez normalement utiliser les méthodes appropriées pour obtenir les types de données spécifiques à la base de données. Le MySQL TIMESTAMP
le type de données peut être obtenu par ResultSet#getTimestamp()
qui vous donne un java.sql.Timestamp
qui à son tour est une sous-classe de java.util.Date
.
En un mot, ce qui suit devrait suffire :
Date date = resultSet.getTimestamp("columnname");
Pour le formater davantage dans un format lisible par l'homme chaque fois que vous allez le présenter à l'utilisateur final, utilisez SimpleDateFormat
. Cliquez sur le lien, il contient un aperçu de tous les modèles. Voici un exemple :
String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
Pour faire tout l'inverse, utilisez respectivement SimpleDateFormat#parse()
et PreparedStatement#setTimestamp()
.