X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-File-KDBX;a=blobdiff_plain;f=lib%2FFile%2FKDBX%2FLoader%2FXML.pm;fp=lib%2FFile%2FKDBX%2FLoader%2FXML.pm;h=68d1abeb1125dd71063fa6ffb4f31b6bd7e7cbbb;hp=1931153636d59b9626e6251934f3d38a3cc89f42;hb=700fa117555b87eda7227f9083c0fc0df052c64f;hpb=608603200ab50a690f944650cbcb2c579f7a3322 diff --git a/lib/File/KDBX/Loader/XML.pm b/lib/File/KDBX/Loader/XML.pm index 1931153..68d1abe 100644 --- a/lib/File/KDBX/Loader/XML.pm +++ b/lib/File/KDBX/Loader/XML.pm @@ -11,7 +11,7 @@ use File::KDBX::Error; use File::KDBX::Safe; use File::KDBX::Util qw(:class :int :text gunzip erase_scoped); use Scalar::Util qw(looks_like_number); -use Time::Piece; +use Time::Piece 1.33; use XML::LibXML::Reader; use boolean; use namespace::clean; @@ -496,7 +496,7 @@ sub _read_xml_content { my $decoded = eval { _decode_primitive($content, $type) }; if (my $err = $@) { ref $err and $err->details(node => $reader->nodePath, line => $reader->lineNumber); - throw $err + throw $err; } return $decoded; @@ -536,10 +536,9 @@ sub _decode_datetime { $binary .= \0 x (8 - length($binary)) if length($binary) < 8; my ($seconds_since_ad1) = unpack_Ql($binary); my $epoch = $seconds_since_ad1 - TIME_SECONDS_AD1_TO_UNIX_EPOCH; - return Time::Piece->new($epoch); + return gmtime($epoch); } - my $dt = eval { Time::Piece->strptime($_, '%Y-%m-%dT%H:%M:%SZ') }; if (my $err = $@) { throw 'Failed to parse datetime', text => $_, error => $err;