Comment puis-je convertir un Java.util.Date
à String
en utilisant
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
L'objet Date que je reçois est passé
DateTime now = new DateTime(date);
Si vous utilisez Java 8, vous ne devez pas utiliser Java.util.Date
en premier lieu (sauf si vous recevez l'objet Date
d'une bibliothèque sur laquelle vous n'avez aucun contrôle).
Dans tous les cas, vous pouvez convertir un Date
en Java.time.Instant
en utilisant:
Date date = ...;
Instant instant = date.toInstant();
Puisque vous n'êtes intéressé que par la date et l'heure, sans informations de fuseau horaire (je suppose que tout est UTC), vous pouvez convertir cet instant en un objet LocalDateTime
:
LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();
Enfin, vous pouvez l'imprimer avec:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));
Ou utilisez le formateur prédéfini, DateTimeFormatter.ISO_LOCAL_DATE_TIME
.
System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
Notez que si vous ne fournissez pas de formateur, appelez ldt.toString
donne une sortie au format standard ISO 8601 (y compris les millisecondes) - qui peut être acceptable pour vous.
DateTime dt = new DateTime(date);
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
dt.toString(dtf)
Vous pouvez utiliser la classe du formateur:
final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
.withZone(DateTimeZone.UTC);
System.out.println(DateTime.now().toString(formatter));
DateTimeFormatterOBJECT=DateTimeFormatter.ofPattern("DD/MMM/YYYY HH//MM/SS");
String MyDateAndTime= LocalDate.now().format(DateTimeFormatterOBJECT);
puisque je suppose que vous utilisez l'API joda: ergo, DateTimeFormatter vient de org.joda.time.format.DateTimeFormatter:
String dateTime = "02-13-2017 18:20:30";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);
System.out.println(jodatime );