Neste capítulo, apresentamos o processamento de hora e data na linguagem Perl.
Existem várias funções para lidar com o tempo em Perl:
1. Função time(): retorna o número acumulado de segundos desde 1º de janeiro de 1970
2. Função localtime(): obtenha o horário do fuso horário local
3. Função gmtime(): Obtenha o horário de Greenwich
A seguir, vamos dar uma olhada na função localtime() , que retorna a hora e a data atuais sem argumentos.
Os 9 símbolos a seguir representam diferentes parâmetros de hora e data:
seg, # segundos, 0 a 61 minutos, # minutos, 0 a 59 horas, # horas, 0 a 24 dias, # dias, 1 a 31 segundos, # meses, 0 a 11 anos, # anos, a partir de 1900 dias, # dia da semana , 0 -6,0 significa domingo ydia, # O dia do ano, 0-364,365isdst # Verdadeiro se o horário de verão estiver em vigor
Exemplo de demonstração é o seguinte:
A saída de execução do exemplo acima é:
Domingo, 12 de junho
Se localtime() for chamado diretamente, ele retornará a hora da configuração de fuso horário atual do sistema. O exemplo é o seguinte:
A saída de execução do exemplo acima é:
A hora e a data são: domingo, 12 de junho, 11:27:31 de 2016
A função gmtime() é semelhante a localtime(), mas retorna o horário padrão de Greenwich.
A saída de execução do exemplo acima é:
A hora e a data local são: Dom, 12 de junho, 11:32:14 2016GMT A hora e a data são: Dom, 12 de junho, 03:32:14 de 2016
Podemos ver pelo exemplo que o horário na China é 8 horas diferente do horário de Greenwich.
Podemos usar os 9 elementos de tempo da função localtime() para gerar o formato de hora que precisa ser formulado. A saída formatada usa a função printf():
A saída de execução do exemplo acima é:
Hora de formatação: HH:MM:SS11:35:23
Podemos obter a época usando a função time(), que retorna o número de segundos desde 1º de janeiro de 1970. Os exemplos são os seguintes:
A saída de execução do exemplo acima é:
O número de segundos acumulados desde 1º de janeiro de 1970 é: 1465702883
Podemos gerar um formato de hora que desejarmos:
A saída de execução do exemplo acima é:
Hora e data atual: 15/03/2017 12:47:54 Hora e data de ontem: 14/03/2017 12:47:54
A função strftime() pode formatar a hora no formato que desejarmos.
A tabela a seguir lista alguns símbolos de formatação. O símbolo * indica que você deseja confiar na hora local:
símbolo | descrever | Exemplo |
---|---|---|
%a | Abreviação do dia da semana (dom..sáb) * | Thu |
%A | O nome completo do dia da semana (domingo..sábado) * | Thursday |
%b | Abreviatura do mês (janeiro..dez) * | Aug |
%B | O nome completo do mês (janeiro..dezembro) * | August |
%c | Data e hora* | Thu Aug 23 14:55:02 2001 |
%C | O ano é dividido por 100 e arredondado ( 00-99 ) | 20 |
%d | O dia do mês ( 01-31 ) | 23 |
%D | Data, MM/DD/YY é igual a %m/%d/%y | 08/23/01 |
%e | O dia do mês, usando espaços para preencher dígitos únicos ( 1-31 ) | 23 |
%F | A abreviatura de YYYY-MM-DD é semelhante a %Y-%m-%d | 2001-08-23 |
%g | Últimos dois dígitos do ano ( 00-99 ) | 01 |
%g | Ano | 2001 |
%h | Abreviatura do mês* (igual à opção %b ) | Aug |
%H | Formato de 24 horas ( 00-23 ) | 14 |
%I | Formato de 12 horas ( 01-12 ) | 02 |
%j | Dia do ano ( 001-366 ) | 235 |
%m | Mês ( 01-12 ) | 08 |
%M | Minutos ( 00-59 ) | 55 |
%n | nova linha ( 'n' ) |
|
%p | Mostrar AM ou PM | PM |
%r | Horário (hh:mm:ss AM ou PM), 12 horas* | 02:55:02 pm |
%R | Formato de hora HH:MM de 24 horas, equivalente a %H:%M | 14:55 |
%S | Número de segundos ( 00-61 ) | 02 |
%t | Guia horizontal ( 't' ) |
|
%T | Hora (formato de 24 horas) (hh:mm:ss), equivalente a %H:%M:%S | 14:55 |
%u | Formato de dia da semana ISO 8601, segunda-feira é 1 ( 1-7 ) | 4 |
%U | Número da semana do ano, domingo é o primeiro dia ( 00-53 ) | 33 |
%V | Semana ISO 8601 ( 00-53 ) | 34 |
%w | Dia da semana (0 representa domingo) ( 0-6 ) | 4 |
%W | Número da semana do ano, segunda-feira é o primeiro dia ( 00-53 ) | 34 |
%x | Formato de exibição da data (mm/dd/aa) * | 08/23/01 |
%X | Exibir formato de hora* | 14:55:02 |
%y | Ano, dois dígitos ( 00-99 ) | 01 |
%Y | Ano | 2001 |
%z | Deslocamento de fuso horário entre ISO 8601 e UTC (1 minuto=1, 1 hora=100) | +100 |
%Z | O nome do fuso horário atual, como "Horário padrão da China" * | CDT |
%% | símbolo % | % |
A saída de execução do exemplo acima é:
Hora e data - 12/06/2016 12:15:13 Hora e data - 12/06/2016 04:15:13