2 votes

Veuillez convertir le format de la date en un format de date différent comme edm

J'ai un champ de type java.util.date et je récupère sa valeur en utilisant to.string() Sat Sep 14 00:00:00 IDT 2013 mais j'ai besoin de l'obtenir dans un format différent qui est le format EDM comme 2013-09-12T14:00. Y a-t-il un moyen simple de le faire?

Merci!

2voto

Sam Points 893

Utilisez SimpleDateFormat (un bon tutoriel est disponible ici). Considérez cet exemple :

Date date = new Date();
System.out.println(date);

qui affiche :

Lun Jun 24 21:46:22 BST 2013

Pour convertir en format EDM, faites ce qui suit :

String firstPartOfPattern = "yyyy-MM-dd";
String secondPartOfPattern = "HH:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(firstPartOfPattern);
SimpleDateFormat sdf2 = new SimpleDateFormat(secondPartOfPattern);
String formattedDate = sdf1.format(date) + "T" + sdf2.format(date);

formattedDate a maintenant le format suivant :

2013-06-24T21:46:22

1voto

coffeemakr Points 329

Éditer : Comme mentionné, vous ne devriez plus utiliser SimpleDateFormat en Java 8+ !

Vous pouvez également simplifier les étapes décrites par Sam :

String motif = "yyyy-MM-dd'T'HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(motif);
String dateFormatee = sdf.format(date);

1voto

Basil Bourque Points 8938

Tl;dr

myUtilDate.toInstant().toString()

2017-01-23T01:23:45.123Z

ISO 8601

Votre format souhaité est défini dans la norme ISO 8601.

Les classes java.time utilisent les formats ISO 8601 par défaut lors de l'analyse ou de la génération de chaînes.

java.time

Évitez d'utiliser les anciennes classes de date-heure obsolètes telles que Date qui sont désormais obsolètes, supplantées par les classes java.time.

Convertissez votre objet Date en java.time en utilisant de nouvelles méthodes ajoutées aux anciennes classes. Le pendant moderne de Date est Instant pour un moment sur la ligne de temps en UTC mais avec une résolution plus fine en nanosecondes plutôt qu'en millisecondes.

Instant instant = myUtilDate.toInstant() ;

Pour générer votre chaîne ISO 8601, appelez simplement toString. Le Z à la fin est la contraction de Zulu et signifie UTC.

String output = instant.toString() ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X