J'ai une chaîne "2017-01-03T02:20:52+00:00"
Je veux convertir en LocalDateTime
.Impossible d'analyser String en Java Date
J'ai essayé le code ci-dessous
import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
public class HelloWorld{
public static void main(String []args){
System.out.println("Hello World");
String date = "2009-07-16T19:20:30-05:00";
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(pattern);
LocalDateTime dateTime = LocalDateTime.parse(date, inputFormatter);
System.out.println(dateTime);
}
}
J'ai essayé divers modèle, mais chaque fois que je reçois ci-dessous erreur:
Exception in thread "main" java.time.format.DateTimeParseException: Text '2009-07-16T19:20:30-05:00' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at HelloWorld.main(HelloWorld.java:11)
à l'index 19 date chaîne , il y a un "-", qui peut ne pas correspondre au modèle utilisé ... – deHaar
Veuillez consulter le document Java DateFormat: http://docs.oracle.com/javase/7/docs/api/j ava/text/SimpleDateFormat.html. Le symbole 'Z' est le fuseau horaire RFC 822, par exemple: -0800. Donc, si vous supprimez le point-virgule de votre entrée, cela devrait fonctionner correctement. – Korashen
Oui, @Korashen a raison. Sinon, vous pouvez utiliser X au lieu de Z dans votre modèle pour utiliser le format ISO 8601. –