Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Time::ParseDate(3)    User Contributed Perl Documentation   Time::ParseDate(3)

NAME
       Time::ParseDate -- date parsing both relative and absolute

SYNOPSIS
	       use Time::ParseDate;
	       $seconds_since_jan1_1970	= parsedate("12/11/94 2pm", NO_RELATIVE	=> 1)
	       $seconds_since_jan1_1970	= parsedate("12/11/94 2pm", %options)

OPTIONS
       Date parsing can	also use options.  The options are as follows:

	       FUZZY   -> it's okay not	to parse the entire date string
	       NOW     -> the "current"	time for relative times	(defaults to time())
	       ZONE    -> local	timezone (defaults to $ENV{TZ})
	       WHOLE   -> the whole input string must be parsed
	       GMT     -> input	time is	assumed	to be GMT, not localtime
	       UK      -> prefer UK style dates	(dd/mm over mm/dd)
	       DATE_REQUIRED ->	do not default the date
	       TIME_REQUIRED ->	do not default the time
	       NO_RELATIVE -> input time is not	relative to NOW
	       TIMEFIRST -> try	parsing	time before date [not default]
	       PREFER_PAST -> when year	or day of week is ambigueous, assume past
	       PREFER_FUTURE ->	when year or day of week is ambigueous,	assume future
	       SUBSECOND -> parse fraction seconds
	       VALIDATE	-> only	accept normal values for HHMMSS, YYMMDD.  Otherwise
		       days like -1 might give the last	day of the previous month.

DATE FORMATS RECOGNIZED
   Absolute date formats
	       Dow, dd Mon yy
	       Dow, dd Mon yyyy
	       Dow, dd Mon
	       dd Mon yy
	       dd Mon yyyy
	       Month day{st,nd,rd,th}, year
	       Month day{st,nd,rd,th}
	       Mon dd yyyy
	       yyyy/mm/dd
	       yyyy-mm-dd      (usually	the best date specification syntax)
	       yyyy/mm
	       mm/dd/yy
	       mm/dd/yyyy
	       mm/yy
	       yy/mm	  (only	if year	> 12, or > 31 if UK)
	       yy/mm/dd	  (only	if year	> 12 and day < 32, or year > 31	if UK)
	       dd/mm/yy	  (only	if UK, or an invalid mm/dd/yy or yy/mm/dd)
	       dd/mm/yyyy (only	if UK, or an invalid mm/dd/yyyy)
	       dd/mm	  (only	if UK, or an invalid mm/dd)

   Relative date formats:
	       count "days"
	       count "weeks"
	       count "months"
	       count "years"
	       Dow "after next"
	       Dow "before last"
	       Dow		       (requires PREFER_PAST or	PREFER_FUTURE)
	       "next" Dow
	       "tomorrow"
	       "today"
	       "yesterday"
	       "last" dow
	       "last week"
	       "now"
	       "now" "+" count units
	       "now" "-" count units
	       "+" count units
	       "-" count units
	       count units "ago"

   Absolute time formats:
	       hh:mm:ss[.ddd]
	       hh:mm
	       hh:mm[AP]M
	       hh[AP]M
	       hhmmss[[AP]M]
	       "noon"
	       "midnight"

   Relative time formats:
	       count "minutes"	       (count can be franctional "1.5" or "1 1/2")
	       count "seconds"
	       count "hours"
	       "+" count units
	       "+" count
	       "-" count units
	       "-" count
	       count units "ago"

   Timezone formats:
	       [+-]dddd
	       GMT[+-]d+
	       [+-]dddd	(TZN)
	       TZN

   Special formats:
	       [ d]d/Mon/yyyy:hh:mm:ss [[+-]dddd]
	       yy/mm/dd.hh:mm

DESCRIPTION
       This module recognizes the above	date/time formats.   Usually a date
       and a time are specified.  There	are numerous options for controlling
       what is recognized and what is not.

       The return code is always the time in seconds since January 1st,	1970
       or undef	if it was unable to parse the time.

       If a timezone is	specified it must be after the time.  Year
       specifications can be tacked onto the end of absolute times.

       If "parsedate()"	is called from array context, then it will return two
       elements.  On sucessful parses, it will return the seconds and what
       remains of its input string.  On	unsucessful parses, it will return
       "undef" and an error string.

EXAMPLES
	       $seconds	= parsedate("Mon Jan  2	04:24:27 1995");
	       $seconds	= parsedate("Tue Apr 4 00:22:12	PDT 1995");
	       $seconds	= parsedate("04.04.95 00:22", ZONE => PDT);
	       $seconds	= parsedate("Jan 1 1999	11:23:34.578", SUBSECOND => 1);
	       $seconds	= parsedate("122212 950404", ZONE => PDT, TIMEFIRST => 1);
	       $seconds	= parsedate("+3	secs", NOW => 796978800);
	       $seconds	= parsedate("2 months",	NOW => 796720932);
	       $seconds	= parsedate("last Tuesday");
	       $seconds	= parsedate("Sunday before last");

	       ($seconds, $remaining) =	parsedate("today is the	day");
	       ($seconds, $error) = parsedate("today is", WHOLE=>1);

LICENSE
       Copyright (C) 1996-2010 David Muir Sharnoff.  Copyright (C) 2011
       Google, Inc.  License hereby granted for	anyone to use, modify or
       redistribute this module	at their own risk.  Please feed	useful changes
       back to cpan@dave.sharnoff.org.

perl v5.32.0			  2013-09-12		    Time::ParseDate(3)

NAME | SYNOPSIS | OPTIONS | DATE FORMATS RECOGNIZED | DESCRIPTION | EXAMPLES | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Time::ParseDate&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help