Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de dates : parse, cast, et comparaison

3 réponses
Avatar
tsimonnet
bonjour tlm

dans mon programme je dois recuperer une date (qui est sous forme de
String) dans un fichier XML, la parser pour avoir un objet de type
Date, et ensuite comparer cet objet avec la date courante afin de
sonner une alerte (ou non)

donc recuperer la date dans le fichier XML, je n'ai aucun probleme,
tout comme avoir la date du jour, c'est pas complique

mon probleme vient du fait qu'entre les 4 classes de temps (Calendar,
Date, DateFormat, SimpleDateFormat), je ne sais pas laquelle utiliser
pour parser mon String en Date, j'ai deja essaye avec le parse de
Calendar et DateFormat mais "ce ne sont pas des methodes statiques" et
du coup j'ai une erreur de compilation

et enfin quand j'ai essaye de caster, evidemment j'ai ete deboute une
fois de plus, la seule chose que je sais c'est que je dois au final
avoir 2 objets Date ou Calendar afin d'etre capable d'utiliser les
methodes after(), before() (qui ne sont disponibles que dans ces
classes) et equals()

c'est pourquoi je viens desesperement demander de l'aide ici
j'espere que vous pourrez m'aider,
merci d'avance

3 réponses

Avatar
Sylvain
wrote on 20/07/2006 19:15:

pour parser mon String en Date, j'ai deja essaye avec le parse de
Calendar et DateFormat mais "ce ne sont pas des methodes statiques" et
du coup j'ai une erreur de compilation


oui et ? ça compile pas <point> ?

si la date est au format IETF, il suffit de faire:

java.util.Date date = java.util.Date.parse(ietfStrDate);

si elle est dans un autre format standard par rapport à une locale
donnée, il faut faire (par exemple):

java.text.DateFormat df = java.text.DateFormat.getDateInstance(
DateFormat.SHORT, java.util.Locale.FRENCH);

java.util.Date date = df.parse(shortFrenchStrDate);

Sylvain.

Avatar
tsimonnet
je travaille avec eclipse, donc il me souligne la ligne de code, et si
je lance le programme et bien j'aurai le message d'erreur "unresolved
compilation problem"

j'essairai ce que vous m'avez dit mais il me semble qu'indiquer a
DateFormat.getDateInstance le format et le pays local n'est pas
indispensable car cette methode est capable d'aller les chercher elle
meme dans les parametres systemes

m'enfin j'essairai quand meme et si ca fonctionne je serai tres
contente :)
merci encore

Sylvain wrote:
wrote on 20/07/2006 19:15:

pour parser mon String en Date, j'ai deja essaye avec le parse de
Calendar et DateFormat mais "ce ne sont pas des methodes statiques" et
du coup j'ai une erreur de compilation


oui et ? ça compile pas <point> ?

si la date est au format IETF, il suffit de faire:

java.util.Date date = java.util.Date.parse(ietfStrDate);

si elle est dans un autre format standard par rapport à une locale
donnée, il faut faire (par exemple):

java.text.DateFormat df = java.text.DateFormat.getDateInstance(
DateFormat.SHORT, java.util.Locale.FRENCH);

java.util.Date date = df.parse(shortFrenchStrDate);

Sylvain.



Avatar
Sylvain
wrote on 21/07/2006 12:10:
je travaille avec eclipse, donc il me souligne la ligne de code, et si
je lance le programme et bien j'aurai le message d'erreur "unresolved
compilation problem"


je n'indiquais pas qu'il faille passer outre les erreurs de compil. mais
bien les corriger - vous auriez pu poster le fragment posant problème
pour dépasser ce blocage.

j'essairai ce que vous m'avez dit mais il me semble qu'indiquer a
DateFormat.getDateInstance le format et le pays local n'est pas
indispensable car cette methode est capable d'aller les chercher elle
meme dans les parametres systemes


si les param. systèmes décrivent exactement les dates à parser, vous
pouvez utiliser un constructeur par défaut (à condition encore que votre
application ne tourne que sur des machines identiquement paramétrées);
si vous cherchez à relire des dates US (mm/dd/yy) sur un système
français (qui utilise une locale FR) vous devrez forcer la locale que
vous souhaitez utiliser pour que cela fonctionne - ces constructeurs
aditionnels ne servent pas qu'à faire joli.

Sylvain.

ps: une réponse se lit mieux placée sous son contexte:
http://www.usenet-fr.net/fr.usenet.reponses/usenet/repondre-sur-usenet.html