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

FreeBSD Manual Pages

  
 
  

home | help
DateTime::Format::EpocUser Contributed Perl DocumentDateTime::Format::Epoch(3)

NAME
       DateTime::Format::Epoch - Convert DateTimes to/from epoch seconds

SYNOPSIS
	 use DateTime::Format::Epoch;

	 my $dt	= DateTime->new( year => 1970, month =>	1, day => 1 );
	 my $formatter = DateTime::Format::Epoch->new(
			     epoch	    => $dt,
			     unit	    => 'seconds',
			     type	    => 'int',	 # or 'float', 'bigint'
			     skip_leap_seconds => 1,
			     start_at	    => 0,
			     local_epoch    => undef,
			 );

	 my $dt2 = $formatter->parse_datetime( 1051488000 );
	  # 2003-04-28T00:00:00

	 $formatter->format_datetime($dt2);
	  # 1051488000

DESCRIPTION
       This module can convert a DateTime object (or any object	that can be
       converted to a DateTime object) to the number of	seconds	since a	given
       epoch.  It can also do the reverse.

METHODS
       o   new(	... )

	   Constructor of the formatter/parser object. It can take the
	   following parameters: "epoch", "unit", "type", "skip_leap_seconds",
	   "start_at", "local_epoch" and "dhms".

	   The epoch parameter is the only required parameter. It should be a
	   DateTime object (or at least, it has	to be convertible to a
	   DateTime object). This datetime is the starting point of the	day
	   count, and is usually numbered 0. If	you want to start at a
	   different value, you	can use	the start_at parameter.

	   The unit parameter can be "seconds",	"milliseconds, "microseconds"
	   or "nanoseconds". The default is "seconds". If you need any other
	   unit, you must specify the number of	units per second. If you
	   specify a number of units per second	below 1, the unit will be
	   longer than a second.  In this way, you can count days: unit	=>
	   1/86_400.

	   The type parameter specifies	the type of the	return value. It can
	   be "int" (returns integer value), "float" (returns floating point
	   value), or "bigint" (returns	Math::BigInt value). The default is
	   either "int"	(if the	unit is	"seconds"), or "bigint"	(if the	unit
	   is nanoseconds).

	   The default behaviour of this module	is to skip leap	seconds. This
	   is what (most versions of?) UNIX do.	If you want to include leap
	   seconds, set	skip_leap_seconds to false.

	   Some	operating systems use an epoch defined in the local timezone
	   of the computer. If you want	to use such an epoch in	this module,
	   you have two	options. The first is to submit	a DateTime object with
	   the appropriate timezone. The second	option is to set the
	   local_epoch parameter to a true value. In this case,	you should
	   submit an epoch with	a floating timezone. The exact epoch used in
	   "format_datetime" will then depend on the timezone of the object
	   you pass to "format_datetime".

	   Most	often, the time	since an epoch is given	in seconds. In some
	   circumstances however it is expressed as a number of	days, hours,
	   minutes and seconds.	This is	done by	NASA, for the so called
	   Mission Elapsed Time. For example, 2/03:45:18 MET means it has been
	   2 days, 3 hours, 45 minutes,	and 18 seconds since liftoff. If you
	   set the dhms	parameter to true, format_datetime returns a four
	   element list, containing the	number of days,	hours, minutes and
	   seconds, and	parse_datetime accepts the same	four element list.

       o   format_datetime($datetime)

	   Given a DateTime object, this method	returns	the number of seconds
	   since the epoch.

       o   parse_datetime($secs)

	   Given a number of seconds, this method returns the corresponding
	   DateTime object.

BUGS
       I think there's a problem when you define a count that does not skip
       leap seconds, and uses the local	timezone. Don't	do that.

SUPPORT
       Support for this	module is provided via the datetime@perl.org email
       list. See http://lists.perl.org/	for more details.

AUTHOR
       Eugene van der Pijll <pijll@gmx.net>

COPYRIGHT
       Copyright (c) 2003-2006 Eugene van der Pijll.  All rights reserved.
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       DateTime

       datetime@perl.org mailing list

perl v5.32.1			  2015-04-17	    DateTime::Format::Epoch(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | BUGS | SUPPORT | AUTHOR | COPYRIGHT | SEE ALSO

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

home | help