Ven, 03 nov 2017 09:12:46 c'est mon format de date et je veux l'analyser en utilisant SimpleDateFormat () en java

-6
AlgoMan 28 nov. 2017 à 13:58

3 réponses

Meilleure réponse

Essaye ça:

    DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
    Date date = df.parse("Fri, 03 Nov 2017 09:12:46");
    System.out.println(date);
1
мυѕτавєւмo 28 nov. 2017 à 11:42

Tl; dr

LocalDateTime.parse( 
    "Fri, 03 Nov 2017 09:12:46" , 
    DateTimeFormatter.ofPattern( "EEE, dd MMM uuuu HH:mm:ss", Locale.US ) 
)

Java.time

L'approche moderne utilise les classes java.time qui remplacent les anciennes classes de date-heure gênantes fournies avec les premières versions de Java. Évitez SimpleDateFormat et autres.

Votre entrée ne contient aucun indicateur de décalage par rapport à UTC ou de fuseau horaire. Nous analysons donc comme un LocalDateTime.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "EEE, dd MMM uuuu HH:mm:ss", Locale.US ) ;
LocalDateTime ldt = LocalDateTime.parse( "Fri, 03 Nov 2017 09:12:46" , f ) ;
0
Basil Bourque 29 nov. 2017 à 17:04

Une fois, j'ai eu la tâche d'écrire une fonctionnalité qui serait capable d'analyser une chaîne de date à une date sans connaître le format à l'avance. En d'autres termes, une chaîne doit être reconnue comme une date si c'est une date valide et analysée à ce jour quel que soit le format dans lequel elle est fournie. La solution que j'ai trouvée était donc d'avoir un fichier de configuration contenant tous les formats de date que je supporte. Je les lis un par un et j'essaye d'analyser la chaîne avec ce format. Si ça marche alors super, j'arrête depuis que j'ai eu mon résultat sinon je continue jusqu'au bout. Si tout le format échoue, la chaîne n'est pas une date ou est dans un format non pris en charge. Bien sûr, l'ajout (et la suppression) de formats pris en charge ne nécessitent pas de modification de code puisqu'il s'agit de mon fichier de configuration. L'ordre des formats est également important puisque de cette façon je peux contrôler si je préfère les formats américains au style européen ou vice-versa. J'ai écrit un article qui décrit l'idée plus en détail. Voici le lien: Package Java 8 java.time: analyse de n'importe quelle chaîne à ce jour. Le titre dit que c'est pour java 8, mais l'idée générale est également applicable aux versions antérieures.

0
Michael Gantman 28 nov. 2017 à 12:48
47529885