Разбор даты и времени в perl с точностью до микро / нано секунд - PullRequest
1 голос
/ 23 ноября 2010

Я ищу модуль perl, который принимает строку с датой, например, "Nov 23 10: 42: 31.808381", а его формат - что-то вроде "% b% d ...." - это и возвращает мне объект dateTime / или печатьэто в другой формат, указанный таким же образом.Time :: Piece не имеет разрешения до нано секунд.Есть ли какой-нибудь модуль, который мне поможет?Я использую Perl 5.8 (здесь нет именованных ссылок)

Ответы [ 2 ]

3 голосов
/ 23 ноября 2010

DateTime :: Format :: Strptime имеет поддержку микросекунд и наносекунд.

Ваш формат немного странный, так как он не включает год.Я добавил тот, который заставляет работать этот демонстрационный код.

#!/usr/bin/perl

use strict;
use warnings;

use DateTime::Format::Strptime;

my $strp = DateTime::Format::Strptime->new(
    pattern => '%b %d %Y %H:%M:%S.%6N',
    on_error => 'croak',
);

my $string = 'Nov 23 2010 10:42:31.808381';

my $dt = $strp->parse_datetime($string);

print $dt->microsecond;
0 голосов
/ 23 ноября 2010

«23 ноября 10: 42: 31.808381» - это микросекунды, а не наносекунды

Если вам нужны микросекунды, вы должны использовать Time :: HiRes; модуль и метод gettimeofday в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...