sub unix_milli_from_str ($str) {
if ($str =~ FORMAT_TIME) {
my ($year, $month, $day, $hour, $minute, $second, $fraction) = ($1, $2, $3, $4, $5, $6, $7);
my $nanosecond = $fraction * (10**(9 - length($fraction)));
my $tm = Time::Moment->new(
year => $year,
month => $month,
day => $day,
hour => $hour,
minute => $minute,
second => $second,
nanosecond => $nanosecond,
);
my $milliepoch = $tm->epoch * 1000 + $tm->millisecond;
return $milliepoch;
}
die "Invalid time format: $str";
}