我正在解析SIP消息,我们需要在人类可读的部分中包含毫秒(即2011/09/08 :10:17.997)--我们需要使用Perl将它们转换为Epoch时间,我已经找到了许多使用从人类可读性到Epoch的示例,但不包括毫秒,这可能吗?我在CPAN中找到了DateTime,但是我在安装它时遇到了问题。因此,寻找其他选项:例如
$epoch = convert(2011/09/08 00:10:17.997)
print $epoch印刷品: 1315183552
发布于 2011-09-09 05:26:29
修复您的系统的任何问题,使您无法安装模块。
除此之外,Epoch时间只有第二分辨率。去掉毫秒,然后使用时间::当地进行转换(您需要自己解析SIP )
$timestamp = "2011/09/08 00:10:17.997";
$timestamp =~ /(\d{4})\/(\d{2})\/(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
# ($sec,$min,$hour,$mday,$mon,$year);
$epoch = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900);如果它真的很重要,用毫秒绕过第二个。
发布于 2011-09-09 05:26:25
如果您在linux下,那么快速和肮脏:
$epoch = `date -d "2011/09/08 00:10:17.997" +%s`; print $epoch;https://stackoverflow.com/questions/7357423
复制相似问题