Skip to content

Mixin Dc Date

Mixin class for “dc:date”.

Classes:

Name Description
DcDateMixin

Date of the document, “dc:date”.

DcDateMixin

Date of the document, “dc:date”.

Methods:

Name Description
get_modification_date

Get the last modified date of the document.

set_modification_date

Set the last modified date of the document.

Attributes:

Name Type Description
date datetime | None

Get or set the element.

set_dc_date
Source code in odfdo/mixin_dc_date.py
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
class DcDateMixin:
    """Date of the document, "dc:date"."""

    def get_modification_date(self) -> datetime | None:
        """Get the last modified date of the document.

        (Also available as "self.date" property.)

        Returns:
            datetime | None: The last modified date as a datetime object, or None if inexistent.
        """
        element = self.clone.get_element("//dc:date")
        if element is None:
            return None
        dtdate = element.text
        return DateTime.decode(dtdate)

    def set_modification_date(self, date: datetime | None = None) -> None:
        """Set the last modified date of the document.

        If provided datetime is None, use current time.

        (Also available as "self.date" property.)

        Args:
            date: The datetime object to set as the last modified date.
        """
        element = self.get_element("//dc:date")
        if element is None:
            element = Element.from_tag("dc:date")
            if hasattr(self, "get_meta_body"):
                self.get_meta_body().append(element)
            else:
                self.append(element)
        if date is None:
            date = datetime.now()
        element.text = DateTime.encode(date)

    # alias for ChangeInfo class
    set_dc_date = set_modification_date

    @property
    def date(self) -> datetime | None:
        """Get or set the <dc:date> element.

        If provided datetime is None, use current time.

        The <dc:date> element specifies the date and time when the document was
        last modified (<office:meta>), when an annotation was created
        (<office:annotation>), when a change was made (<office:change-info>).
        """
        return self.get_modification_date()

    @date.setter
    def date(self, date: datetime | None = None) -> None:
        self.set_modification_date(date)

date property writable

date: datetime | None

Get or set the element.

If provided datetime is None, use current time.

The element specifies the date and time when the document was last modified (), when an annotation was created (), when a change was made ().

set_dc_date class-attribute instance-attribute

set_dc_date = set_modification_date

get_modification_date

get_modification_date() -> datetime | None

Get the last modified date of the document.

(Also available as “self.date” property.)

Returns:

Type Description
datetime | None

datetime | None: The last modified date as a datetime object, or None if inexistent.

Source code in odfdo/mixin_dc_date.py
33
34
35
36
37
38
39
40
41
42
43
44
45
def get_modification_date(self) -> datetime | None:
    """Get the last modified date of the document.

    (Also available as "self.date" property.)

    Returns:
        datetime | None: The last modified date as a datetime object, or None if inexistent.
    """
    element = self.clone.get_element("//dc:date")
    if element is None:
        return None
    dtdate = element.text
    return DateTime.decode(dtdate)

set_modification_date

set_modification_date(date: datetime | None = None) -> None

Set the last modified date of the document.

If provided datetime is None, use current time.

(Also available as “self.date” property.)

Parameters:

Name Type Description Default
date datetime | None

The datetime object to set as the last modified date.

None
Source code in odfdo/mixin_dc_date.py
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
def set_modification_date(self, date: datetime | None = None) -> None:
    """Set the last modified date of the document.

    If provided datetime is None, use current time.

    (Also available as "self.date" property.)

    Args:
        date: The datetime object to set as the last modified date.
    """
    element = self.get_element("//dc:date")
    if element is None:
        element = Element.from_tag("dc:date")
        if hasattr(self, "get_meta_body"):
            self.get_meta_body().append(element)
        else:
            self.append(element)
    if date is None:
        date = datetime.now()
    element.text = DateTime.encode(date)