Formato de fecha según RFC-2822

Cuando tenía el blog en un hosting con mi propio desarrollo CMS, quise agregarlo a Planeta Linux Venezuela, uno de los lineamientos para ser incluido decía textualmente: “El feed tiene que ser 100% válido por feedvalidator.org“. El formato de fecha que he venido usando en el satélite está construido de la siguiente manera: “2007-03-25 20:31:00“. Al momento de validar el Feed con la web sugerida, ocasionaba varios errores, específicamente 3, uno de los errores era que faltaba una etiqueta guid, otro error donde faltaba un enlace ATOM de referencia y por último el error del formato de la fecha utilizada.

Cada publicación que se realiza está guardada en un archivo XML que interpreta el PHP para ser formateado en la página y por ahora llevo publicado desde el año 2007 unos 71 archivos, 72 con éste. No estaba sencillo cambiar cada archivo el formato de la fecha para ser aceptado en el planeta.

Elaboré un script en Bash que ubicara la etiqueta utilizada en el archivo para indicar la fecha, quedó de la siguiente forma:

#!/bin/bash

for i in {0..70} 
do 
 FECHA=$(grep -i "<.*" $i.xml | awk '{print $1,$2}' | cut -d"[" -f3,4 | cut -d"]" -f1)
 RFC=$(date -R --date="$FECHA")
 echo sed -i "'s/$FECHA/$RFC/g'" $i.xml >> cambios.sh
done

chmod 755 cambios.sh
bash cambios.sh

exit 0

De esa manera logré modificar el formato de fecha a RFC-2822 dinámicamente en todos los archivos, donde se establece que debe ser: “Sun, 22 Aug 2010 08:24:36 -0430“.

Todos los elementos de estándares de sindicación como: RSS, ATOM, algún otro, utiliza dicho formato de fecha para ser publicados.

Advertisements
This entry was posted in Bash. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s