这可能是一个愚蠢的问题,但我无法找到答案:
我有一个Python代码,它打印时间戳,如下所示:
2015-05-19 22:27:00.688441
Run Code Online (Sandbox Code Playgroud)
生成该字符串的代码如下所示:
print str(datetime.datetime.strptime(time_value, '%Y-%m-%d %H:%M:%S.%f'))
Run Code Online (Sandbox Code Playgroud)
我想在 Perl(版本 5.14)中做同样的事情。我可以获得该字符串的所有部分(除了最后一个小数部分)(%f)。
如何在 Perl 中获得完全相同的字符串?
PS:我尝试使用Time::HiRes模块。
use Time::HiRes;
my ($seconds, $microseconds) = gettimeofday;
Run Code Online (Sandbox Code Playgroud)
如果我能用的话$seconds,localtime()有可能吗?如果是这样,那又如何呢?
原始问题的扩展:如果我有一个变量$time_value——假设我已经从某个地方检索了该变量中的时间戳字符串,我如何将其格式化为所需的格式,即以微秒为单位的时间戳?
与 Python 最相似的方式是安装和使用DateTime。请注意,微秒不是标准strptime格式的一部分。DateTime 用于%N秒的小数部分。 %6N表示小数秒到 6 位(微秒)。
# `DateTime->now` uses seconds, so we have to supply our own
# hires time.
use Time::HiRes qw(time);
use DateTime;
print DateTime->from_epoch( epoch => time )->strftime('%Y-%m-%d %H:%M:%S.%6N');
Run Code Online (Sandbox Code Playgroud)