La réponse rapide est :
Non, vous n'êtes pas autorisé à le faire. Parce que c'est ce que Date
utilise.
D'après la javadoc de Date
:
La classe Date représente un instant spécifique dans le temps, avec une précision milliseconde.
Cependant, cette classe étant simplement un objet de données. Elle ne se soucie pas de la façon dont nous la décrivons. Quand nous voyons une date 2012/01/01 12:05:10.321
, nous pouvons dire que c'est 2012/01/01
, c'est ce dont vous avez besoin. Il y a plusieurs façons de faire cela.
Exemple 1 : en manipulant des chaînes de caractères
Chaîne d'entrée : 2012/01/20 12:05:10.321
Chaîne de sortie souhaitée : 2012/01/20
Puisque les yyyy/MM/dd sont exactement ce dont nous avons besoin, nous pouvons simplement manipuler la chaîne pour obtenir le résultat.
String input = "2012/01/20 12:05:10.321";
String output = input.substring(0, 10); // Résultat : 2012/01/20
Exemple 2 : avec SimpleDateFormat
Chaîne d'entrée : 2012/01/20 12:05:10.321
Chaîne de sortie souhaitée : 01/20/2012
Dans ce cas, nous voulons un format différent.
String input = "2012/01/20 12:05:10.321";
DateFormat inputFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
Date date = inputFormatter.parse(input);
DateFormat outputFormatter = new SimpleDateFormat("MM/dd/yyyy");
String output = outputFormatter.format(date); // Résultat : 01/20/2012
Pour l'utilisation de SimpleDateFormat
, consultez la documentation Java de SimpleDateFormat.
0 votes
Que dit
System.out.println(date)
juste après la dernière ligne? Cela doit déjà être dans le format souhaité, n'est-ce pas? Sinon, vous n'avez pas réellement posté le code complet. Par exemple, vous pourriez le convertir en objetDate
plus tard, ce qui récupérerait l'heure par défaut.0 votes
Ne récupérez-vous pas juste 21/03/2012 de
date
?0 votes
@BalusC ouais....c'est le format désiré..mais quand on convertit la chaîne en date, il ajoute une heure par défaut....que je ne veux pas...
0 votes
Pourquoi le convertir de nouveau en
Date
alors ? :) Comment cela a-t-il du sens ? L'objetDate
représente le timestamp de l'époque en millisecondes et cela inclut bien sûr également l'heure. Si votre seul but est de le présenter aux humains, convertissez-le simplement enString
dans le format désiré comme vous l'avez déjà fait. Vous n'avez besoin de le faire qu'au moment précis où vous allez le présenter aux humains. Lisez la javadoc : docs.oracle.com/javase/7/docs/api/java/util/Date.html (particulièrement aussi la méthodetoString()
).0 votes
Oui tu as raison...mais je veux passer cette date dans une méthode qui accepte un argument en tant que date et non en tant que chaîne de caractères...donc dans ce but je veux la convertir en date...
0 votes
Utilisez
LocalDate
dejava.time
, le package date et heure Java moderne. C'est une date sans heure de la journée.