Perl Fecha y Hora
En este capítulo presentamos el manejo de fechas y horas en Perl.
En Perl, las funciones para manejar el tiempo son las siguientes:
- 1. Función time():Devuelve el número de segundos transcurridos desde el 1 de enero de 1970.
- 2. Función localtime():Obtiene la hora de la zona horaria local.
- 3. Función gmtime():Obtiene la hora de Greenwich (GMT).
Hora y fecha actuales
A continuación, veamos lalocaltime()función. Esta función devuelve la fecha y hora actuales cuando no tiene parámetros.
Los siguientes 9 símbolos representan diferentes parámetros de fecha y hora:
sec, # 秒, 0 到 61 min, # 分钟, 0 到 59 hour, # 小时, 0 到 24 mday, # 天, 1 到 31 mon, # 月, 0 到 11 year, # 年,从 1900 开始 wday, # 星期几,0-6,0表示周日 yday, # 一年中的第几天,0-364,365 isdst # 如果夏令时有效,则为真
Ejemplo demostrativo a continuación:
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
12 六月 星期天
Si se llama directamente a localtime(), devuelve la hora de la zona horaria configurada actualmente en el sistema. Ejemplo:
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
时间日期为:Sun Jun 12 11:27:31 2016
Hora de Greenwich (GMT)
Funcióngmtime()Similar a localtime(), pero devuelve la hora estándar de Greenwich.
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
本地时间日期为:Sun Jun 12 11:32:14 2016 GMT 时间日期为:Sun Jun 12 03:32:14 2016
Del ejemplo podemos ver que la hora de China y la hora de Greenwich difieren en 8 horas.
Formatear fecha y hora
Podemos usar los 9 elementos de tiempo de la función localtime() para generar el tiempo en el formato deseado. Para la salida formateada se usa la función printf():
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
格式化时间:HH:MM:SS 11:35:23
Tiempo de época (Epoch Time)
Podemos usar la función time() para obtener el tiempo de época. Esta función devuelve el número de segundos transcurridos desde el 1 de enero de 1970. Ejemplo:
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
从1970年1月1日起累计的秒数为:1465702883
Podemos generar un formato de tiempo que deseemos:
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
当期时间和日期:2017-3-15 12:47:54 昨天时间和日期:2017-3-14 12:47:54
Función POSIX strftime()
La función strftime() puede formatear el tiempo en el formato que queramos.
La siguiente tabla enumera algunos símbolos de formato; el símbolo * indica que depende de la hora local:
| Símbolo | Descripción | Ejemplo |
|---|---|---|
%a |
Abreviatura del día de la semana (Sun..Sat) * | Thu |
%A |
Nombre completo del día de la semana (Sunday..Saturday) * | Thursday |
%b |
Abreviatura del mes (Jan..Dec) * | Aug |
%B |
Nombre completo del mes (January..December) * | August |
%c |
Fecha y hora * | Thu Aug 23 14:55:02 2001 |
%C |
Año dividido por 100 y redondeado (00-99) |
20 |
%d |
Día del mes (01-31) |
23 |
%D |
Fecha,MM/DD/YYequivalente a%m/%d/%y |
08/23/01 |
%e |
Día del mes, con espacio en un solo dígito ( 1-31) |
23 |
%F | YYYY-MM-DDla abreviatura es similar a%Y-%m-%d |
2001-08-23 |
%g |
Los dos últimos dígitos del año (00-99) |
01 |
%g |
año | 2001 |
%h |
Abreviatura del mes * (y%bmisma opción) |
Aug |
%H | Formato de 24 horas (00-23) |
14 |
%I |
Formato de 12 horas (01-12) |
02 |
%j |
Día del año (001-366) |
235 |
%m |
Mes (01-12) |
08 |
%M |
Minuto (00-59) |
55 |
%n |
Nueva línea ('\n') |
|
%p | Muestra AM o PM | PM |
%r |
Hora (hh:mm:ss AM o PM), 12 horas * | 02:55:02 pm |
%R |
24 horasHH:MMFormato de hora, equivalente a%H:%M |
14:55 |
%S |
Segundos (00-61) |
02 |
%t |
Tabulador horizontal ('\t') |
|
%T |
Hora (formato 24h) (hh:mm:ss), equivalente a%H:%M:%S |
14:55 |
%u |
Formato del día de la semana ISO 8601, siendo el lunes1 (1-7) |
4 |
%U |
Semana del año, con el domingo como primer día (00-53) |
33 |
%V |
Semana según ISO 8601 (00-53) |
34 |
%w |
Día de la semana (0 representa el domingo) (0-6) |
4 |
%W |
Semana del año, con el lunes como primer día (00-53) |
34 |
%x |
Formato de fecha (mm/dd/yy) * | 08/23/01 |
%X |
Formato de hora * | 14:55:02 |
%y |
Año, dos dígitos (00-99) |
01 |
%Y |
año | 2001 |
%z |
Desplazamiento de zona horaria según ISO 8601 respecto a UTC (1 minuto=1, 1 hora=100)
|
+100 |
%Z |
Nombre de la zona horaria actual, como "Hora estándar de China" *
|
CDT |
%% |
%Símbolo |
% |
Ejemplo
El resultado de ejecutar el ejemplo anterior es:
时间日期 - 2016-06-12 12:15:13 时间日期 - 2016-06-12 04:15:13Otras extensiones