2006-10-18

Cambiar el formato de fecha

Para nosotros que tenemos el formato distinto a los anglosajones a veces podemos tener verdaderos problemas a la hora de trabajar con bases de datos en inglés y datos en castellano.

Volviendo a mi post anterior, dentro de los registros que tenía que insertar en la base de datos se encontraba un campo fecha y había que pasarlo al formato de fecha que acepta MYSQL.

Para realizar esta tarea, he pensado en hacerlo con las tan recurrentes expresiones regulares.

El formato original sería así:

dd/mm/aaaa

y el formato que queremos obtener:

aaaa-mm-dd

Lo que he hecho es encontrar una regla que me cuadre con el formato:

(\d\d)/(\d\d)/(\d\d\d\d)

Cuando utilizas expresiones regulares, puedes utilizar los paréntesis. Lo que hay dentro puede ser reutilizable. De esta forma colocando entre paréntesis los distintos campos de la fecha, puedo luego cambiarlos de posición.
La barra seguida de la d, \d simplemente indica la presencia de un número entre 0 y 9.

Ahora lo que quiero es sustituir cada vez que encuentra una fecha por el otro formato:

$3-$2-$1

Al colocar el símbolo del dolar seguido del número de bloque indicamos donde queremos que ponga cada campo de la fecha. Los guiones simplemente indican el separador.

Está comprobado su correcto funcionamiento en el Pspad, pero por alguna razón que desconozco no funciona en el editplus.

Como siempre, las expresiones regulares nos sacan de grandes apuros.

No hay comentarios: