La validation d'une date en java
Je suis à l'aide de l'EDI NetBeans 7.2.
J'ai séparer les deux classes newDateTest.java
et newDateMethod.java
, je suis actuellement en utilisant ma méthode de classe pour valider une date à partir d'une entrée de l'utilisateur que j'ai utilisé dans ma classe de test.
Jusqu'à présent dans ma classe de Test j'ai le texte suivant:
try
{
Prompt ="please enter a date in the format dd-mm-yyyy";
System.out.println(Prompt);
String inputDate = in.next();
isValid = newDateMethod.validDate(input, input, input);
if (isValid){
System.out.println("VALID DATE");
} else {
System.out.println("INVALID DATE");
}
}catch (ArrayIndexOutOfBoundsException oob) {
System.out.println(oob);
}
}
Cependant, je n'ai aucune idée de comment valider la date dans ma classe de méthode que je suis assez nouveau à Java.
Quelqu'un peut-il arriver à une solution? le tri de l'iof chose que j'ai appris à utiliser est la Date Formmater mais vous ne savez pas si cela est approprié ici? si donc ne sais pas comment l'utiliser
Votre question a suscité beaucoup de réponses qui recommandent la classe SimpleDateFormat. Soyez prudent avec cela. Pour ne donner que deux exemples, la méthode parse() ne peut pas détecter errornous mois (soit 13 mois) et le format de l'année peut être éclaté avec plus de ans. Vous ne pouvez pas valider une Date avec cette classe. Il dépend de ce vous souhaitez valider.
OriginalL'auteur user1954746 | 2013-01-07
Vous devez vous connecter pour publier un commentaire.
Comme ceci:
OriginalL'auteur duffymo
Ont un coup d'oeil à
SimpleDateFormat.parse(...)
et n'oubliez pas d'entourer avec try-catch.OriginalL'auteur Anders R. Bystrup
La norme JDK classe pour qui est SimpleDateFormat:
Sinon, je vous recommande d'utiliser Joda Time's
DateTimeFormat
.OriginalL'auteur fge
Plutôt que de compter sur les exceptions qui ont tendance à avoir une petite surcharge de performance, vous pouvez également utiliser le DateValidator de l'Apache commons routines paquet comme ça:
Petit avertissement cependant, je n'ai pas regardé à la mise en œuvre de la validation de la méthode et je ne suis pas sûr si il utilise par exemple le SimpleDateFormat...
OriginalL'auteur Roy
Vous devez utiliser
SimpleDateFormat.parse(String)
méthode. si la date est de mauvais format, il déclenche une exception dans ce cas, vous retourne la valeur false.Prompt ="please enter a date in the format dd-mm-yyyy"
🙂c'est faux !! Si, au lieu de "07-01-2013" votre entrée sera "07-01-017" ou "07-01-2ooo" vous n'obtiendrez pas une exception, mais le format est incorrect
OriginalL'auteur PermGenError
On peut utiliser joda-time.
Si
parseDateTime
jeterIllegalArgumentException
puis la date n'est pas valide.OriginalL'auteur mcacorner