:right-sidebar: True DateTime =================================================================== .. currentmodule:: gi.repository.Gst .. class:: DateTime(**kwargs) :no-contents-entry: Struct to store date, time and timezone information altogether. :obj:`~gi.repository.Gst.DateTime` is refcounted and immutable. Date information is handled using the `proleptic Gregorian calendar `__\. Provides basic creation functions and accessor functions to its fields. Constructors ------------ .. rst-class:: interim-class .. class:: DateTime :no-index: .. classmethod:: new(tzoffset: float, year: int, month: int, day: int, hour: int, minute: int, seconds: float) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the date and times in the gregorian calendar in the supplied timezone. ``year`` should be from 1 to 9999, ``month`` should be from 1 to 12, ``day`` from 1 to 31, ``hour`` from 0 to 23, ``minutes`` and ``seconds`` from 0 to 59. Note that ``tzoffset`` is a float and was chosen so for being able to handle some fractional timezones, while it still keeps the readability of representing it in hours for most timezones. If value is -1 then all over value will be ignored. For example if ``month`` == -1, then :obj:`~gi.repository.Gst.DateTime` will be created only for ``year``\. If ``day`` == -1, then :obj:`~gi.repository.Gst.DateTime` will be created for ``year`` and ``month`` and so on. :param tzoffset: Offset from UTC in hours. :param year: the gregorian year :param month: the gregorian month :param day: the day of the gregorian month :param hour: the hour of the day :param minute: the minute of the hour :param seconds: the second of the minute .. classmethod:: new_from_g_date_time(dt: ~gi.repository.GLib.DateTime | None = None) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` from a :obj:`~gi.repository.GLib.DateTime` object. :param dt: the :obj:`~gi.repository.GLib.DateTime`\. .. classmethod:: new_from_iso8601_string(string: str) -> ~gi.repository.Gst.DateTime | None Tries to parse common variants of ISO-8601 datetime strings into a :obj:`~gi.repository.Gst.DateTime`\. Possible input formats are (for example): ``2012-06-30T22:46:43Z``\, ``2012``\, ``2012-06``\, ``2012-06-30``\, ``2012-06-30T22:46:43-0430``\, ``2012-06-30T22:46Z``\, ``2012-06-30T22:46-0430``\, ``2012-06-30 22:46``\, ``2012-06-30 22:46:43``\, ``2012-06-00``\, ``2012-00-00``\, ``2012-00-30``\, ``22:46:43Z``\, ``22:46Z``\, ``22:46:43-0430``\, ``22:46-0430``\, ``22:46:30``\, ``22:46`` If no date is provided, it is assumed to be "today" in the timezone provided (if any), otherwise UTC. :param string: ISO 8601-formatted datetime string. .. classmethod:: new_from_unix_epoch_local_time(secs: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the time since Jan 1, 1970 specified by ``secs``\. The :obj:`~gi.repository.Gst.DateTime` is in the local timezone. :param secs: seconds from the Unix epoch .. classmethod:: new_from_unix_epoch_local_time_usecs(usecs: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the time since Jan 1, 1970 specified by ``usecs``\. The :obj:`~gi.repository.Gst.DateTime` is in the local timezone. .. versionadded:: 1.18 :param usecs: microseconds from the Unix epoch .. classmethod:: new_from_unix_epoch_utc(secs: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the time since Jan 1, 1970 specified by ``secs``\. The :obj:`~gi.repository.Gst.DateTime` is in the UTC timezone. :param secs: seconds from the Unix epoch .. classmethod:: new_from_unix_epoch_utc_usecs(usecs: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the time since Jan 1, 1970 specified by ``usecs``\. The :obj:`~gi.repository.Gst.DateTime` is in UTC. .. versionadded:: 1.18 :param usecs: microseconds from the Unix epoch .. classmethod:: new_local_time(year: int, month: int, day: int, hour: int, minute: int, seconds: float) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the date and times in the gregorian calendar in the local timezone. ``year`` should be from 1 to 9999, ``month`` should be from 1 to 12, ``day`` from 1 to 31, ``hour`` from 0 to 23, ``minutes`` and ``seconds`` from 0 to 59. If ``month`` is -1, then the :obj:`~gi.repository.Gst.DateTime` created will only contain ``year``\, and all other fields will be considered not set. If ``day`` is -1, then the :obj:`~gi.repository.Gst.DateTime` created will only contain ``year`` and ``month`` and all other fields will be considered not set. If ``hour`` is -1, then the :obj:`~gi.repository.Gst.DateTime` created will only contain ``year`` and ``month`` and ``day``\, and the time fields will be considered not set. In this case ``minute`` and ``seconds`` should also be -1. :param year: the gregorian year :param month: the gregorian month, or -1 :param day: the day of the gregorian month, or -1 :param hour: the hour of the day, or -1 :param minute: the minute of the hour, or -1 :param seconds: the second of the minute, or -1 .. classmethod:: new_now_local_time() -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` representing the current date and time. .. classmethod:: new_now_utc() -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` that represents the current instant at Universal coordinated time. .. classmethod:: new_y(year: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the date and times in the gregorian calendar in the local timezone. ``year`` should be from 1 to 9999. :param year: the gregorian year .. classmethod:: new_ym(year: int, month: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the date and times in the gregorian calendar in the local timezone. ``year`` should be from 1 to 9999, ``month`` should be from 1 to 12. If value is -1 then all over value will be ignored. For example if ``month`` == -1, then :obj:`~gi.repository.Gst.DateTime` will created only for ``year``\. :param year: the gregorian year :param month: the gregorian month .. classmethod:: new_ymd(year: int, month: int, day: int) -> ~gi.repository.Gst.DateTime | None Creates a new :obj:`~gi.repository.Gst.DateTime` using the date and times in the gregorian calendar in the local timezone. ``year`` should be from 1 to 9999, ``month`` should be from 1 to 12, ``day`` from 1 to 31. If value is -1 then all over value will be ignored. For example if ``month`` == -1, then :obj:`~gi.repository.Gst.DateTime` will created only for ``year``\. If ``day`` == -1, then :obj:`~gi.repository.Gst.DateTime` will created for ``year`` and ``month`` and so on. :param year: the gregorian year :param month: the gregorian month :param day: the day of the gregorian month Methods ------- .. rst-class:: interim-class .. class:: DateTime :no-index: .. method:: get_day() -> int Returns the day of the month of this :obj:`~gi.repository.Gst.DateTime`\. .. method:: get_hour() -> int Retrieves the hour of the day represented by ``datetime`` in the gregorian calendar. The return is in the range of 0 to 23. .. method:: get_microsecond() -> int Retrieves the fractional part of the seconds in microseconds represented by ``datetime`` in the gregorian calendar. .. method:: get_minute() -> int Retrieves the minute of the hour represented by ``datetime`` in the gregorian calendar. .. method:: get_month() -> int Returns the month of this :obj:`~gi.repository.Gst.DateTime`\. January is 1, February is 2, etc.. .. method:: get_second() -> int Retrieves the second of the minute represented by ``datetime`` in the gregorian calendar. .. method:: get_time_zone_offset() -> float Retrieves the offset from UTC in hours that the timezone specified by ``datetime`` represents. Timezones ahead (to the east) of UTC have positive values, timezones before (to the west) of UTC have negative values. If ``datetime`` represents UTC time, then the offset is zero. .. method:: get_year() -> int Returns the year of this :obj:`~gi.repository.Gst.DateTime`\. Call :func:`~gi.repository.Gst.DateTime.has_year` before, to avoid warnings. .. method:: has_day() -> bool .. method:: has_month() -> bool .. method:: has_second() -> bool .. method:: has_time() -> bool .. method:: has_year() -> bool .. method:: to_g_date_time() -> ~gi.repository.GLib.DateTime | None Creates a new :obj:`~gi.repository.GLib.DateTime` from a fully defined :obj:`~gi.repository.Gst.DateTime` object. .. method:: to_iso8601_string() -> str | None Create a minimal string compatible with ISO-8601. Possible output formats are (for example): ``2012``\, ``2012-06``\, ``2012-06-23``\, ``2012-06-23T23:30Z``\, ``2012-06-23T23:30+0100``\, ``2012-06-23T23:30:59Z``\, ``2012-06-23T23:30:59+0100``