# Convert any time to epoch and ISO. Really only works for times within
# the normal Unix range, i.e., (about) 1900 to 2038
# ready to "use"
package timestamp; use Time::ParseDate; use Carp; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(ts convert_any_time); use strict; sub ts { my($t) = @_; $t = time if (!defined($t)); my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($t); my($time_string) = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900,$mon+1,$mday,$hour,$min,$sec +); return $time_string; } sub convert_any_time { my($time_in) = @_; my($epoch,$ts); if ($time_in =~ /^\d+$/) { $epoch = $time_in; $ts = &ts($time_in); } elsif ($time_in =~ /^\d+-\d+-\d+ \d+:\d+:\d+/) { $epoch = &parsedate($time_in); $ts = $time_in; } else { $epoch = &parsedate($time_in); $ts = &ts($epoch); } return ($epoch,$ts); } 1;