Skip to main content

Date

Struct Date 

Source
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: u16

Four-digit year.

§month: u8

Month, 1–12.

§day: u8

Day of month, 1–31.

§hour: u8

Hour, 0–23.

§minute: u8

Minute, 0–59.

§second: u8

Second, 0–59.

§utc_offset_minutes: i16

Offset from UTC in minutes (positive east).

Implementations§

Source§

impl Date

Source

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.

Source

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.

Source

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.

Trait Implementations§

Source§

impl Clone for Date

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Date

Source§

impl Debug for Date

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Date

Source§

impl PartialEq for Date

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Date

Auto Trait Implementations§

§

impl Freeze for Date

§

impl RefUnwindSafe for Date

§

impl Send for Date

§

impl Sync for Date

§

impl Unpin for Date

§

impl UnsafeUnpin for Date

§

impl UnwindSafe for Date

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.