simplemente escribí una expresión regular para controlar una fecha y hora de MySQL (y creo que no es tan dif erent para Oracle u otro servidor de base de datos).
Este ReGex es muy seguro y controla la validez de la fecha (meses en 28, 30 & 31 días e incluso años en 29/02). Entonces, controla el tiempo. El formato de hora es ésta:
AAAA-MM-DD HH: MM: SS
Aquí es la expresión regular (bastante largo):
((((19|20)([2468][048]|[13579][26]|0[48])|2000)-02-29|((19|20)[0-9]{2}-(0[4678]|1[02])-(0[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}-(0[1359]|11)-(0[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}-02-(0[1-9]|1[0-9]|2[0-8])))\s([01][0-9]|2[0-3]):([][0-9]):([][0-9]))
Partidos
2013-04-05 17:59:59 | 2013-07-30 01:22:42 | 2099-12-30 23:59:59 | 2016-02-28 00:00:00
no-partidos
2016-02-29 -01: 01: 02 | 3000-04-24 17:42:21 | 2012-03-03 24:24:02 | 2012-03-03 21:60:45
No creo que pueda hacer uno más seguro. Muy funcional y probado. Por favor, si usted lo usa, no dude en darme retroalimentación;)
FYI: Si sólo se observa para el control de fecha expresión regular sin tiempo, por favor ir allí para encontrarlo: Regular Expression to match valid dates (comprobar mi post) .
Saludos
2009/14/35 27:63:60 Es válido? Si no, va a ser feo con expresiones regulares. – balpha
¿Qué idioma estás usando? Si se trata de Perl, puede invocar el código de la expresión regular, que es probablemente la única forma en que hará una verificación fácil de leer. Solo el código para validar si es un año bisiesto para validar si existe el 29 de febrero haría que todo fuera feo a medida que todos salgan. –
menciono regex, solo como una sugerencia. Estoy usando Javascript y doy la bienvenida a cualquier alternativa. –