Comment puis-je valider un timestamp?
mon application prend en une chaîne comme celle-ci "2002-10-15 10:55:01.000000". J'ai besoin de valider que la chaîne est valide pour une base de données db2 d'horodatage.
Comment puis-je faire cela?
EDIT: la plupart du temps Cela fonctionne
public static boolean isTimeStampValid(String inputString) {
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
try {
format.parse(inputString);
return true;
} catch (ParseException e) {
return false;
}
}
Le problème est que si je passe un mauvais format pour millisecondes comme "2011-05-02 10:10:01.0 av" cela va passer de validation. Je suis en supposant que, depuis la première milliseconde personnage est valide puis il tronque le reste de la chaîne.
InformationsquelleAutor Bill | 2011-05-05
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de savoir exactement sur le format, mais vous vous pouvez jouer autour d'elle et d'essayer quelque chose de ce genre
EDIT: si vous souhaitez valider les chiffres après le succès de l'analyse, vous pourriez faire
au lieu de
http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Je crois que le format serait
"yyyy-MM-dd HH:mm:ss.SSSSSS"
Appel
parse(String)
et attraper ParseException, indiquant qu'il est invalide.Si vous êtes déjà connecté à la base de données, vous pouvez exécuter une requête qui tente de jeter la chaîne d'entrée comme un timestamp, et de vérifier un message d'échec (dans ce cas, SQLSTATE 22007).
La requête ci-dessus permettra de valider complètement la chaîne d'entrée tout en consommant à peine toutes les ressources sur le serveur de base de données. Si la chaîne n'est pas valide pour une raison quelconque, votre base de données client rencontre une exception.