NAME
Date::Parser - Simple date parsing
VERSION
Version 0.4
SYNOPSIS
my $dp = Date::Parser->new;
my $format = "%b %d %H:%M:%S";
open(my $fh, "<", "/var/log/sshd.log") or die "failed to open log: $!";
while (my $line = readline($fh)) {
chomp($line);
my $date = $dp->parse_data($format, $line);
# do something with the date ..
}
close($fh);
DESCRIPTION
Really simple date parsing factory. Uses I18N::Langinfo for localized day/month names and abbreviations.
METHODS
parse_data($format, $data)
Parses given $data using $format.
Returns a new Date::Parser::Date -object.
FORMAT
For parsing you can use the following formatting:
%% literal %, is not captured.
%a day of the week abbr
%A day of the week
%b month abbr
%B month
%d numeric day of the month, with leading zeros (eg 01..31)
%e like %d, but a leading zero is replaced by a space (eg 1..32)
%h month abbr
%H hour, 24 hour clock, leading 0's
%I hour, 12 hour clock, leading 0's
%j day of the year
%k hour
%l hour, 12 hour clock
%L month number, starting with 1
%m month number, starting with 01
%M minute, leading 0's
%o ornate day of month - "1st", "2nd", etc. (only day int is captured)
%p AM or PM (both %p or %P and %I or %l are required ..)
%P am or pm (.. to resolve 12 hour clock time.)
%q Quarter number, starting with 1
%s seconds since the Epoch, UCT
%S seconds, leading 0's
%t TAB, is not captured
%U week number, Sunday as first day of week
%w day of the week, numerically, Sunday == 0
%W week number, Monday as first day of week
%y year (2 digits, e.g. 11 => 2011)
%Y year (4 digits)
%Z timezone in ascii. eg: PST
%z timezone in format -/+0000
CAVEATS
Still under work, so missing some features.. works for most log formats pretty well.
TODO
- Day of week (in case doy is missing)
- Localized values for ornate dom
- Quarter support (in case month is missing)
- Week number support (in case month/doy is missing)
- Timezones (?)
AUTHOR
Heikki Mehtänen, <heikki@mehtanen.fi>
COPYRIGHT & LICENSE
Copyright 2011 Heikki Mehtänen, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.