Parser un string (Date)

Parser un string (Date) - Java - Programmation

Marsh Posté le 04-01-2005 à 16:56:38    

Bonjour
 
j'ai une date en string qui me faut convertir en java.sql.Date.
 
Donc j'utilise un parser pour la convertir. (SimpleDateFormat)
 
Le pb c'est que la date peut avoir plusieurs format different :
 
dd/MM/yyyy ou dd.MM-yyyy ou dd.MM.yyyy
 
Comment résoudre ce pb sans utiliser les exceptions ?

Reply

Marsh Posté le 04-01-2005 à 16:56:38   

Reply

Marsh Posté le 04-01-2005 à 17:03:11    

Tu ne peux pas différencier tes cas avant d'arriver au "parsage" ?
et pourquoi ne pas vouloir utiliser les exceptions ?

Reply

Marsh Posté le 04-01-2005 à 17:03:22    

Faire des tests avec des expressions régulières ?
\d{2}/\d{2}/\d{4} et \d{2}-\d{2}-\d{4}


Message édité par phnatomass le 04-01-2005 à 17:03:48
Reply

Marsh Posté le 04-01-2005 à 17:11:15    

Zedar a écrit :

Tu ne peux pas différencier tes cas avant d'arriver au "parsage" ?
et pourquoi ne pas vouloir utiliser les exceptions ?


 
Bonne idée ... Quoique pas assez propre  :o, mais je vais tenter  :lol:  
 
Sinon je veux pas utiliser les exceptions car j'aime trop manipuler les exceptions, c'est sale  :o  :D
 
Une bonne appli, c'est une appli sans exception  :o


Message édité par Mazda3 le 04-01-2005 à 17:11:57
Reply

Marsh Posté le 04-01-2005 à 17:12:38    

phnatomass a écrit :

Faire des tests avec des expressions régulières ?
\d{2}/\d{2}/\d{4} et \d{2}-\d{2}-\d{4}


 
Même esprit que zedar, je teste  :jap:  

Reply

Marsh Posté le 04-01-2005 à 17:13:44    

c'est quoi ton problème avec les exceptions ?

Reply

Marsh Posté le 04-01-2005 à 17:14:42    

Euh ton point de vue sur les exceptions est.. intéressant [:petrus75]
 
sinon pour différencier avant, tu fais juste une recherche du caractère '/', '-' ou '.' et tu auras ton format :p (j'ai regardé dans la doc et pas trouvé moyen d'avoir un format multiple en argument...)

Reply

Marsh Posté le 04-01-2005 à 17:15:11    

Plus fondamentalement, tu ne devrais probablement pas arriver à un point où une String à convertir en java.sql.Date peut avoir plusieurs formats.
 
Je ne serais pas étonné qu'il y ait un problème de design en amont, et c'est part là que je commencerais.
 
A défaut, on en arrive à des contorsions inélégantes et qui rendent le code peu maintenable.
 
Maintenant, je ne vois pas pq tu ne veux pas utiliser les exceptions ?! Tu crées une méthode générique isValid(String  date, String format) dans une classe relative aux Dates qui réalise le test; tu en crées une autre qui fait la conversion et le tour est joué.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-01-2005 à 17:16:06    

mazda3 a écrit :

Même esprit que zedar, je teste  :jap:


Ca ne suffira pas. Le plus simple et le plus efficace pour tester une date, c'est pas ça.  :sol:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-01-2005 à 17:16:36    

sircam: bah euh "le problème de design" ici c'est simplement une certaine souplesse qu'on veut laisser aux utilisateurs j'imagine; le truc qu'il doit parser est probablement une entrée humaine...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-01-2005 à 17:16:36   

Reply

Marsh Posté le 04-01-2005 à 17:16:53    

Ok, mais la date fournit, c'est une date donnée pas un calendrier Javascript, et sur certains postes, il me donne de droles de format.
 
Sinon merci :jap:

Reply

Marsh Posté le 04-01-2005 à 17:17:46    

L'entrée devrait être normalisée avant d'arriver à ce qui ressemble à une couche data access, plutôt que de mélanger les deux.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-01-2005 à 17:18:11    

the real moins moins a écrit :

sircam: bah euh "le problème de design" ici c'est simplement une certaine souplesse qu'on veut laisser aux utilisateurs j'imagine; le truc qu'il doit parser est probablement une entrée humaine...


 
Egalement, l'utilisateur n'est aps obligé d'utiliser le calendrier javascript

Reply

Marsh Posté le 04-01-2005 à 17:18:28    

Ouep, d'accord avec Sircam, surtout si l'entrée n'est pas humaine, essaie de regarder en aval comment tu peux arriver à ces cas là, ça semble qd mm bizarre (aval c'est bien avant ?)
 
EDIT : manqué c'était amont [:kiki]


Message édité par zedar le 04-01-2005 à 17:19:26
Reply

Marsh Posté le 04-01-2005 à 17:19:30    

sircam a écrit :

L'entrée devrait être normalisée avant d'arriver à ce qui ressemble à une couche data access, plutôt que de mélanger les deux.


ha oui, c'est le package qui te fait dire ça, javais pas tilté


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-01-2005 à 18:15:18    

mazda3 a écrit :

Bonne idée ... Quoique pas assez propre  :o, mais je vais tenter  :lol:  
 
Sinon je veux pas utiliser les exceptions car j'aime trop manipuler les exceptions, c'est sale  :o  :D
 
Une bonne appli, c'est une appli sans exception  :o


 
t'es compliqué
mais je voudrais savoir ce que tu veut dire avec

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed