pub struct Date {
pub year: u16,
pub month: u8,
pub day: u8,
pub hour: u8,
pub minute: u8,
pub second: u8,
pub utc_offset_minutes: i16,
}Expand description
A calendar date and time with a UTC offset: the value of /CreationDate
and /ModDate in the document information dictionary, and of every
other date string in a file. The writer never reads a clock; dates
appear in output only when a caller provides them, keeping builds
reproducible.
Covers ISO 32000-1 §7.9.4.
Fields§
§year: u16Four-digit year.
month: u8Month, 1–12.
day: u8Day of month, 1–31.
hour: u8Hour, 0–23.
minute: u8Minute, 0–59.
second: u8Second, 0–59.
utc_offset_minutes: i16Offset from UTC in minutes (positive east).
Implementations§
Source§impl Date
impl Date
Sourcepub fn to_pdf_string(self) -> String
pub fn to_pdf_string(self) -> String
Formats as a PDF date string, D:YYYYMMDDHHmmSSOHH'mm — with a
literal Z in place of the offset when the date is exactly UTC.
Covers ISO 32000-1 §7.9.4.
Sourcepub fn to_iso8601(self) -> String
pub fn to_iso8601(self) -> String
Formats as an ISO-8601 date-time, YYYY-MM-DDTHH:mm:SS±HH:MM — with
a literal Z in place of the offset when the date is exactly UTC.
The form of the XMP xmp:CreateDate/xmp:ModifyDate elements and
of the CLI’s info output.
Covers ISO 32000-1 §7.9.4.
Sourcepub fn parse_pdf(s: &str) -> Option<Date>
pub fn parse_pdf(s: &str) -> Option<Date>
Parses a PDF date string (ISO 32000 §7.9.4): the D: prefix (taken
as optional, since producers omit it), a required 4-digit year, then
optional 2-digit month, day, hour, minute and second, each present
only if the one before it is (month and day default to 1, the rest
to 0), then an optional UTC offset: Z, or +/-HH with optional
'mm. Producers’ deviations are taken too: a trailing apostrophe
after the offset minutes, Z followed by offset digits, and offset
minutes without the apostrophe. None when the year is missing, a
present field is not digits or outside its range (month 1–12, day
1–31, hour 0–23, minute and second 0–59, offset hour 0–23 and
minute 0–59), or the offset marker is neither Z nor a sign.
Covers ISO 32000-1 §7.9.4.