NAME
DateTime::Format::PDF - PDF DateTime Parser and Formatter.
SYNOPSIS
use DateTime::Format::PDF;
my $obj = DateTime::Format::PDF->new;
my $dt = $obj->parse_datetime($pdf_date);
my $pdf_date = $obj->format_datetime($dt);
DESCRIPTION
This module understands the formats used by PDF file. It can be used to parse these formats in order to create DateTime objects, and it can take a DateTime object and produce a string representing it in a format accepted by PDF.
METHODS
new
my $obj = DateTime::Format::PDF->new(%params);
Constructor.
Returns instance of object.
parse_datetime
my $dt = $obj->parse_datetime($pdf_date);
Parse PDF datetime string.
Possible valid strings:
D:YYYY
D:YYYYMM
D:YYYYMMDD
D:YYYYMMDDHH
D:YYYYMMDDHHmm
D:YYYYMMDDHHmmSS
D:YYYYMMDDHHmmSSZ
D:YYYYMMDDHHmmSSOHHmm
D:YYYYMMDDHHmmSSOHH'mm
D:YYYYMMDDHHmmSSOHH'mm'
D:YYYYMMDDHHmmSSOHHmm'
Returns DateTime object.
format_datetime
my $pdf_date = $obj->format_datetime($dt);
Format DateTime object to PDF datetime string. Output value is D:YYYYMMDDHHmmSSOHHmm
.
Returns string.
ERRORS
format_datetime():
Bad DateTime object.
Value: %s
parse_datetime():
Invalid date format: %s
EXAMPLE1
use strict;
use warnings;
use DateTime::Format::PDF;
# Object.
my $obj = DateTime::Format::PDF->new;
# Parse date.
my $dt = $obj->parse_datetime("D:20240401084337-01'30");
# Print out.
print $dt->strftime("%a, %d %b %Y %H:%M:%S %z")."\n";
# Output like:
# Mon, 01 Apr 2024 08:43:37 -0130
EXAMPLE2
use strict;
use warnings;
use DateTime;
use DateTime::Format::PDF;
# Object.
my $obj = DateTime::Format::PDF->new;
# Example date.
my $dt = DateTime->now;
# Format.
my $pdf_date = $obj->format_datetime($dt);
# Print out.
print "PDF date: $pdf_date\n";
# Output like:
# PDF date: D:20240401084337+0000
DEPENDENCIES
DateTime::Format::Builder, Error::Pure, Scalar::Util.
REPOSITORY
https://github.com/michal-josef-spacek/DateTime-Format-PDF
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2024 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.01