toolic, your hunch is most likely correct, I was using the %T format hoping to get HH:MM:SS. I've since substituted %H:%M:%S and although I don't get an error, I get a bizarre time... I don't think it's UTC or GMT... here's the code:
#!perl -w
use POSIX qw(strftime);
use Date::Calc qw(Mktime);
$datetimestring = "4/5/13 16:09";
#split datetimestring into date & time
($date_raw, $time_raw) = split(/ /, $datetimestring);
print "the date_raw is: $date_raw \n";
#split the date into MM DD YY
($m0_raw, $d0_raw, $y0_raw) = split(/\//, $date_raw);
$m_raw = sprintf ("%02d", $m0_raw);
print "the m_raw is: $m_raw \n";
$d_raw = sprintf ("%02d", $d0_raw);
print "the d_raw is: $d_raw \n";
$y_raw = 2000 + $y0_raw;
print "the y_raw is: $y_raw \n\n";
print "the time_raw is: $time_raw \n";
#split the time_raw into HH MM
($hh_raw, $mm_raw) = split(/:/, $time_raw);
print "the hh_raw is: $hh_raw \n";
print "the mm_raw is: $mm_raw \n\n";
$s0_raw = 0;
$ss_raw = sprintf ("%02d", $s0_raw);
#load a Perl datetime variable using mktime
$datetime1 = Mktime($y_raw,$m_raw,$d_raw, $hh_raw, $mm_raw, $ss_ra
+w);
print "the loaded datetime variable is: $datetime1 \n";
#format the datetime variable to match the require format MON dd yyyy
+HH:MM:SS GMT
$time2 = strftime('%b %d, %y %H:%M:%S', $m_raw, $d0_raw, $y_raw, $
+hh_raw, $mm_raw, $ss_raw);
print "the formatted date time is: $time2 \n";
Here are the results I get:
the date_raw is: 4/5/13
the m_raw is: 04
the d_raw is: 05
the y_raw is: 2013
the time_raw is: 16:09
the hh_raw is: 16
the mm_raw is: 09
the loaded datetime variable is: 1365192540
the formatted date time is: Jan 07, 01 21:05:04
|