Comment convertir la date du calendrier au yyyy-MM-dd
format.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Cela produira inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Mais ce dont j'ai besoin, c'est 2012-09-26
. Mon but est de comparer cette date avec une autre date dans ma base de données en utilisant les critères Hibernate. J'ai donc besoin de l'objet date au yyyy-MM-dd
format.
Date
àyyyy-MM-dd
ou d'analyser une chaîne deyyyy-MM-dd
à uneDate
valeur ?? Pour formater la date, utilisez simplementformat1.format(date)
, pour l'analyser, utilisezformat1.parse(someStringValueInTheCorrectFormat)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Réponses:
Un Java
Date
est un conteneur pour le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 GMT.Lorsque vous utilisez quelque chose comme
System.out.println(date)
, Java utiliseDate.toString()
pour imprimer le contenu.La seule façon de le changer est de passer outre
Date
et de fournir votre propre implémentation deDate.toString()
. Maintenant, avant de lancer votre IDE et d'essayer cela, je ne le ferais pas; cela ne fera que compliquer les choses. Il vaut mieux formater la date au format que vous souhaitez utiliser (ou afficher).Java 8+
Avant Java 8
Vous devriez utiliser le backport ThreeTen
Ce qui suit est conservé à des fins historiques (comme réponse originale)
Ce que vous pouvez faire, c'est formater la date.
Ce sont en fait la même date, représentés différemment.
la source
Calendar
Calendar
Votre code est incorrect. Aucun point d'analyse de la date et gardez-le comme objet Date.
Vous pouvez formater l'objet date de calendrier lorsque vous souhaitez l'afficher et le conserver sous forme de chaîne.
la source
java.time
La réponse de MadProgrammer est correcte, en particulier l'astuce sur Joda-Time . Le successeur de Joda-Time est désormais intégré à Java 8 en tant que nouveau package java.time . Voici un exemple de code en Java 8.
Lorsque vous travaillez avec la date-heure (par opposition à la date locale), le fuseau horaire est critique. Le jour du mois dépend du fuseau horaire. Par exemple, le fuseau horaire de l' Inde est
+05:30
(cinq heures et demie d'avance sur UTC), tandis que la France n'a qu'une heure d'avance. Ainsi, un moment dans un nouveau jour en Inde a une date alors que le même moment en France a la date «d'hier». La création d'une sortie de chaîne sans informations de fuseau horaire ou de décalage crée une ambiguïté. Vous avez demandé une sortie AAAA-MM-JJ donc je l'ai fournie, mais je ne la recommande pas. Au lieu deISO_LOCAL_DATE
j'aurais utiliséISO_DATE
pour obtenir cette sortie:2014-02-25+05:30
Dump sur console…
Lors de l'exécution ...
Joda-Time
Code similaire utilisant la bibliothèque Joda-Time , le précurseur de java.time.
ISO 8601
Soit dit en passant, ce format de votre chaîne d'entrée est un format standard, l'un des nombreux formats de chaîne date-heure pratiques définis par ISO 8601 .
Joda-Time et java.time utilisent par défaut les formats ISO 8601 lors de l'analyse et de la génération de représentations sous forme de chaîne de diverses valeurs de date-heure.
la source
java.util.Date
l'objet ne peut pas représenter la date dans un format personnalisé , mais vous devez utiliser uneSimpleDateFormat.format
méthode qui renvoiestring
.la source
Pour analyser un
java.util.Date
objet, vous devez d'abord le convertir en chaîne en utilisant votre propre format.Mais je crois que vous êtes redondant ici.
la source
Cela affichera votre date + 7 jours au format mois, jour et année dans un volet de fenêtre JOption.
la source
la source
J'ai trouvé ce code où la date est comparée dans un format à comparer avec le champ de date dans la base de données ... peut-être que cela pourrait vous être utile ...
Lorsque vous convertissez la chaîne en date à l'aide de simpledateformat, il est difficile de comparer avec le champ Date dans les bases de données mysql.
Donc, convertissez la date de la chaîne java au format en utilisant STR_to_DATE ('yourdate', '% m /% d /% Y') -> dans ce format, vous obtiendrez alors le format de date exact du champ de date mysql.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
la source
la source