web-dev-qa-db-fra.com

java.util.date à String à l'aide de DateTimeFormatter

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);
12
Cork Kochi

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.

18
assylias
DateTime dt = new DateTime(date);
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
dt.toString(dtf)
1
Cork Kochi

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));
1
Archmede
DateTimeFormatterOBJECT=DateTimeFormatter.ofPattern("DD/MMM/YYYY HH//MM/SS");

String MyDateAndTime= LocalDate.now().format(DateTimeFormatterOBJECT);
0
RANA DINESH

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 );
0