在Perl中,localtime
采用Unix时间戳并返回年/月/日/小时/分/秒等。我正在寻找localtime
的反面:我有部分,我想从他们那里建立一个unix时间戳。
答案 0 :(得分:15)
您可以在Time::Local CPAN模块中使用timelocal函数。
NAME
时间::本地 - 有效地计算时间 从当地和格林尼治标准时间
概要
$time = timelocal($sec,$min,$hour,$mday,$mon,$year); $time = timegm($sec,$min,$hour,$mday,$mon,$year);
说明
该模块提供的功能 是内置perl的反转 函数localtime()和gmtime()。 他们接受一个六元素的约会 数组,并返回相应的 时间(2)以秒为单位的值 系统时代(1月1日午夜, 1970年GMT在Unix上,例如)。这个 价值可以是正面的或负面的, 虽然POSIX只需要支持 正值,所以日期之前 系统的时代可能不适用于所有 操作系统。
特别值得一提 注意预期的范围 提供的价值。的价值 每月的某天是实际的一天(即 1..31),而月份是自1月(0..11)以来的月数。这个 与返回的值一致 来自localtime()和gmtime()。
注意: POSIX::mktime只是C库mktime()
函数的一个包装器。 Time :: Local是纯Perl实现,并且始终返回与Perl的localtime
匹配的结果。此外,Time :: Local提供gmtime
,而mktime
仅适用于当地时间。 (好吧,您可以尝试更改$ENV{TZ}
,但这在某些系统上不起作用。)
答案 1 :(得分:9)
答案 2 :(得分:7)
DateTime可能会有所帮助。它还具有很多的时间操作/翻译方法。
只需使用您的部件创建DateTime并调用$ datetime-> formatter(“%s”);