in

Perl – Fecha y hora


Este capítulo le dará los conocimientos básicos sobre cómo procesar y manipular fechas y horas en Perl.

Fecha y hora actual

Empecemos con hora local() función, que devuelve valores para la fecha y hora actuales si no se proporcionan argumentos. A continuación se muestra la lista de 9 elementos devuelta por el hora local función mientras se usa en el contexto de lista –

sec,     # seconds of minutes from 0 to 61
min,     # minutes of hour from 0 to 59
hour,    # hours of day from 0 to 24
mday,    # day of month from 1 to 31
mon,     # month of year from 0 to 11
year,    # year since 1900
wday,    # days since sunday
yday,    # days since January 1st
isdst    # hours of daylight savings time

Pruebe el siguiente ejemplo para imprimir diferentes elementos devueltos por la función localtime ():

#!/usr/local/bin/perl
 
@months = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
@days = qw(Sun Mon Tue Wed Thu Fri Sat Sun);

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
print "$mday $months[$mon] $days[$wday]n";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

16 Feb Sat

Si va a utilizar la función localtime () en un contexto escalar, devolverá la fecha y la hora de la zona horaria actual establecida en el sistema. Pruebe el siguiente ejemplo para imprimir la fecha y hora actuales en formato completo:

#!/usr/local/bin/perl
 
$datestring = localtime();
print "Local date and time $datestringn";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Local date and time Sat Feb 16 06:50:45 2013

Hora GMT

La función gmtime () funciona igual que la función localtime () pero los valores devueltos están localizados para la zona horaria estándar de Greenwich. Cuando se llama en el contexto de la lista, $ isdst, el último valor devuelto por gmtime, es siempre 0. No hay horario de verano en GMT.

Debe tomar nota del hecho de que localtime () devolverá la hora local actual en la máquina que ejecuta el script y gmtime () devolverá la hora universal de Greenwich, o GMT (o UTC).

Pruebe el siguiente ejemplo para imprimir la fecha y hora actuales pero en la escala GMT:

#!/usr/local/bin/perl

$datestring = gmtime();
print "GMT date and time $datestringn";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

GMT date and time Sat Feb 16 13:50:45 2013

Formatear fecha y hora

Puede usar la función localtime () para obtener una lista de 9 elementos y luego puede usar la printf () función para formatear la fecha y la hora según sus requisitos de la siguiente manera:

#!/usr/local/bin/perl
 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

printf("Time Format - HH:MM:SSn");
printf("%02d:%02d:%02d", $hour, $min, $sec);

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Time Format - HH:MM:SS
06:58:52

Época

Puede usar la función time () para obtener el tiempo de época, es decir, el número de segundos que han transcurrido desde una fecha determinada, en Unix es el 1 de enero de 1970.

#!/usr/local/bin/perl
 
$epoc = time();

print "Number of seconds since Jan 1, 1970 - $epocn";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Number of seconds since Jan 1, 1970 - 1361022130

Puede convertir una cantidad determinada de segundos en una cadena de fecha y hora de la siguiente manera:

#!/usr/local/bin/perl

$datestring = localtime();
print "Current date and time $datestringn";

$epoc = time();
$epoc = $epoc - 24 * 60 * 60;   # one day before of current date.

$datestring = localtime($epoc);
print "Yesterday's date and time $datestringn";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Current date and time Tue Jun  5 05:54:43 2018
Yesterday's date and time Mon Jun  4 05:54:43 2018

Función POSIX strftime ()

Puede utilizar la función POSIX strftime () para formatear la fecha y la hora con la ayuda de la siguiente tabla. Tenga en cuenta que los especificadores marcados con un asterisco

dependen de la configuración regional. Especificador Reemplazado por
%a Ejemplo Thu
%A Nombre abreviado del día de la semana * Thursday
%b Nombre completo del día de la semana * Aug
%B Nombre del mes abreviado * August
%c Nombre del mes completo * Thu Aug 23 14:55:02 2001
%C Representación de fecha y hora *00-99Año dividido por 100 y truncado a entero ( 20
%d )01-31Día del mes, relleno con ceros ( 23
%D ) MM/DD/YY Pequeño %m/%d/%y 08/23/01
%e fecha, equivalente a 1-31Día del mes, relleno con espacios ( 23
%F ) YYYY-MM-DD Pequeño %Y-%m-%d 2001-08-23
%g fecha, equivalente a00-99Año basado en la semana, dos últimos dígitos ( 01
%G ) 2001
%h Año basado en la semana %bNombre del mes abreviado * (igual que Aug
%H )00-23Hora en formato 24h ( 14
%I )01-12Hora en formato de 12h ( 02
%j )001-366Día del año ( 235
%m )01-12Mes como número decimal ( 08
%M )00-59Minuto ( 55
%n )'n'Carácter de nueva línea (
%p ) PM
%r Designación AM o PM 02:55:02 pm
%R Reloj de 12 horas * HH:MM 24 horas %H:%M 14:55
%S tiempo, equivalente a00-61Segundo ( 02
%t )'t'Carácter de tabulación horizontal (
%T )HH:MM:SSFormato de hora ISO 8601 ( %H:%M:%S 14:55
%u ), equivalente a 1 ISO 8601 día de la semana como número con lunes como1-7( 4
%U )00-53Número de semana con el primer domingo como primer día de la semana uno ( 33
%V )00-53Número de semana ISO 8601 ( 34
%w ) 0 Día de la semana como un número decimal con el domingo como0-6( 4
%W )00-53Número de semana con el primer lunes como primer día de la semana uno ( 34
%x ) 08/23/01
%X Representación de fecha * 14:55:02
%y Representación de tiempo *00-99Año, dos últimos dígitos ( 01
%Y ) 2001
%z

Año

Desplazamiento ISO 8601 de UTC en la zona horaria (1 minuto = 1, 1 hora = 100)

+100
%Z

Si no se puede terminar la zona horaria, no hay caracteres

Nombre o abreviatura de la zona horaria *

CDT
%% Si no se puede terminar la zona horaria, no hay caracteres % A %

firmar

#!/usr/local/bin/perl
use POSIX qw(strftime);

$datestring = strftime "%a %b %e %H:%M:%S %Y", localtime;
printf("date and time - $datestringn");

# or for GMT formatted appropriately for your locale:
$datestring = strftime "%a %b %e %H:%M:%S %Y", gmtime;
printf("date and time - $datestringn");

Veamos el siguiente ejemplo para comprender el uso:

date and time - Sat Feb 16 07:10:23 2013
date and time - Sat Feb 16 14:10:23 2013

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Bfsvc virus 2 1

¿Qué es Bfsvc? ¿Es un virus? ¿Cómo eliminarlo?

apple touch icon@2

c ++ – ¿Cómo se configura, borra y alterna un solo bit?