in reply to Converting datetime string to valid localtime value (seconds)
Hope fully this helps.
grep
You can also throw the DateCalc sub in there for your time zone.#!/usr/local/bin/perl use strict; use Date::Manip; my $line = qq{1.2.3.4 - - [15/May/2003:01:05:02 -0600] "GET /foobar"}; my $date = ''; if ($line =~ /\[([^\]]+)\]/) { $date = $1; } my $secs = UnixDate(ParseDate($date),"%s"); print "$secs\n"; print localtime($secs)."\n";
UPDATE: Better solution
$Date::Manip::TZ = '-0800'; my $line = qq{1.2.3.4 - - [15/May/2003:01:05:02 -0600] "GET /foobar"}; my $date = ''; if ($line =~ /\[([^\]]+)\]/) { $date = $1; } my $tz = (split(/\s+/,$date))[1]; print "$date $tz\n"; my $secs = UnixDate(Date_ConvTZ(ParseDate($date),$tz,'GMT' ),"%s"); print "$secs\n"; print localtime($secs)."\n";
grep
Mynd you, mønk bites Kan be pretti nasti... |
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Converting datetime string to valid localtime value (seconds)
by vladb (Vicar) on May 16, 2003 at 18:56 UTC |
In Section
Seekers of Perl Wisdom