在Perl中,localtime
取一个Unix时间戳并返回年/月/日/小时/分钟/秒等.我正在寻找相反的localtime
:我有部分,我想从它们构建一个unix时间戳.
您可以在Time :: Local CPAN模块中使用timelocal函数.
名称
时间::本地 - 从本地和GMT时间有效地计算时间
概要
$time = timelocal($sec,$min,$hour,$mday,$mon,$year); $time = timegm($sec,$min,$hour,$mday,$mon,$year);描述
该模块提供与内置perl函数localtime()和gmtime()相反的函数.它们接受一个六元素数组的日期,并返回自系统纪元以来的相应时间(2)值(例如,在Unix上的1970年1月1日午夜,GMT).此值可以是正数或负数,但POSIX仅需要支持正值,因此系统时期之前的日期可能无法在所有操作系统上运行.
值得特别注意所提供值的预期范围.月份的值是实际的日期(即1..31),而月份是自1月份(0..11)以来的月份.这与localtime()和gmtime()返回的值一致.
注意: POSIX :: mktime只是C库mktime()
函数的包装器.Time :: Local是一个纯Perl实现,并且总是返回与Perl匹配的结果localtime
.此外,Time :: Local提供gmtime
,但mktime
仅适用于当地时间.(好吧,你可以尝试改变$ENV{TZ}
,但这在某些系统上不起作用.)
POSIX :: mktime
CPAN上的DateTime可能有一些用处.它还有很多时间操作/翻译方法.
只需使用您的部件创建DateTime并调用$ datetime-> formatter("%s");