Perl strptime 解析毫秒
Perl strptime parse millisecond
我需要解析一些格式为 ddmmyyyyhhmmssXXX 的时间字符串。 XXX 部分是毫秒。在下面的代码中,我忽略了毫秒部分。它有效,但我收到错误:
garbage at end of string in strptime: 293 at /usr/local/lib64/perl5/Time/Piece.pm line 482.
我应该使用什么样的正确格式。
$time = '11032014182819802';
$format = '%d%m%Y%H%M%S';
$t = Time::Piece->strptime($time, $format);
Time::Piece->strptime(substr($time, 0, -3), $format);
因为 Time::Piece
不支持毫秒。
如果您关心毫秒并希望保留它们,则需要考虑使用其他东西(例如,DateTime::Format::Strptime)。
如果你想解析毫秒,可以使用DateTime::Format::Strptime
,那么你可以试试这个:
my $Strp = new DateTime::Format::Strptime(
pattern => '%d%m%Y%H%M%S%3N',
);
my $date = $Strp->parse_datetime("11032014182819802");
print $date->millisecond ,"\n";
我需要解析一些格式为 ddmmyyyyhhmmssXXX 的时间字符串。 XXX 部分是毫秒。在下面的代码中,我忽略了毫秒部分。它有效,但我收到错误:
garbage at end of string in strptime: 293 at /usr/local/lib64/perl5/Time/Piece.pm line 482.
我应该使用什么样的正确格式。
$time = '11032014182819802';
$format = '%d%m%Y%H%M%S';
$t = Time::Piece->strptime($time, $format);
Time::Piece->strptime(substr($time, 0, -3), $format);
因为 Time::Piece
不支持毫秒。
如果您关心毫秒并希望保留它们,则需要考虑使用其他东西(例如,DateTime::Format::Strptime)。
如果你想解析毫秒,可以使用DateTime::Format::Strptime
,那么你可以试试这个:
my $Strp = new DateTime::Format::Strptime(
pattern => '%d%m%Y%H%M%S%3N',
);
my $date = $Strp->parse_datetime("11032014182819802");
print $date->millisecond ,"\n";