• Publicidad

Convertir fecha y hora a formato UNIX

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Convertir fecha y hora a formato UNIX

Notapor princi » 2017-04-19 07:19 @346

Hola.

Quería saber si hay algún módulo que permita cambiar una fecha y hora, con segundos escalares, por ejemplo: 2017 0419 0907 39.3 (aaaa mmdd hhmm seg) a formato UNIX. Encontré módulos para trabajar con fechas pero no puedo encontrar cómo trabajar con segundos en escalar. Disculpen mi ignorancia. Desde ya, agradezco su ayuda.

Saludos.
princi
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2012-01-31 08:00 @375

Publicidad

Re: Convertir fecha y hora a formato UNIX

Notapor explorer » 2017-04-19 09:25 @434

Con un formato así, se puede extraer lo interesante con una expresión regular, y luego usar Time::Local (incluido por defecto en tu distribución de Perl), para obtener la fecha UNIX:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.14;
  3. use utf8;
  4.  
  5. use Time::Local;
  6.  
  7.  
  8. my $time_txt = '2017 0419 1620 39.3';
  9.  
  10. my($año, $mes, $día, $horas, $minutos, $segundos) = $time_txt =~ /^(\d{4}) (\d{2})(\d{2}) (\d{2})(\d{2}) (\d+)/;
  11. #say $año, $mes, $día, $horas, $minutos, $segundos;
  12.  
  13. $mes--;                 # consistente con la función localtime() y gmtime()
  14.  
  15. my $time_unix_local = timelocal($segundos, $minutos, $horas, $día, $mes, $año);
  16.  
  17. say $time_unix_local;   # 1492611639
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Con eso obtienes la fecha UNIX en la zona horaria local. Si quieres tener la fecha en la zona horaria GMT, debes usar la función timegm(). Más información en Time::Local
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados