Demogracia Bits

• • • Colección privada de recortes de código y documentación para programación web

[Sí, aún estamos en pruebas; ¿por?]

Fecha y hora

En nuestros archivos *.bat caseros hay veces que necesitamos guardar la fecha en un log o dar un nombre a una copia de seguridad en plan mysql_2008-02-29_18-30-59.sql. La buena noticia es que se puede hacer sin tener que aprender Perl. (La mala es que hay aprender Windows Batch, lenguaje emparentado con el japonés antiguo...).

@echo off
rem
rem Ejemplo de manejo de la fecha y hora actual - v2008-03-15
rem


rem Juego de caracteres ISO-8859-1 (Latin 1)
chcp 28591 > NUL


setlocal

set FECHA_ACTUAL=%DATE%
set HORA_ACTUAL=%TIME%

set ANO=%FECHA_ACTUAL:~6,4%
set MES=%FECHA_ACTUAL:~3,2%
set DIA=%FECHA_ACTUAL:~0,2%

set HORA=%HORA_ACTUAL:~0,2%
set MINUTOS=%HORA_ACTUAL:~3,2%
set SEGUNDOS=%HORA_ACTUAL:~6,2%
set CENTESIMAS=%HORA_ACTUAL:~9,2%

rem Si la hora tiene un sólo dígito, reemplazamos el espacio inicial por cero
set HORA=%HORA: =%
if %HORA% LSS 10 set HORA=0%HORA%

echo Fecha: %FECHA_ACTUAL%
echo Hora: %HORA_ACTUAL%
echo.
echo Día: %DIA%
echo Mes: %MES%
echo Año: %ANO%
echo.
echo Hora: %HORA%
echo Minutos: %MINUTOS%
echo Segundos: %SEGUNDOS%
echo Centésimas: %CENTESIMAS%
echo.
echo Ejemplo de nombre de archivo: %APPDATA%\Foo\bar %ANO%-%MES%-%DIA%.log
echo Ejemplo de línea para log: [%ANO%-%MES%-%DIA% %HORA%:%MINUTOS%:%SEGUNDOS%] Error: se ha caído la junta de la trócola

endlocal

echo.
pause

Nota importante: desgraciadamente, el formato de la fecha cambia según la configuración regional de Windows. Este script funciona correctamente con el formato de España pero no con, por ejemplo, el de EE.UU. Si necesitas desesperadamente un script universal te recomiendo la excelente página Date and Time using NT's DATE/T and TIME/T and XP's WMIC.

Historial

v2008-03-15
Corregida una errata al mostrar la hora.
Mejorada la extración de la hora cuando tiene un sólo dígito.
v2008-02-28
Primera versión.

Esta página ha sido impresa el domingo 6 de julio de 2008 (22:55:22 +0200) desde http://bits.demogracia.com/recortes/batch/fecha-y-hora.html, contenía HTML válido con CSS fresquito la última vez que lo miré y no debería tener flatas de ortografía.

Demogracia Bits no tiene absolutamente ninguna relación con Demogracia, salvo el nombre, el dominio punto com y que el autor es el mismo.

© 2005-2008 by Álvaro G. Vicario (alvaro.es) ¤ Burgos (España) ¤ http://bits.demogracia.com/