-
-
Notifications
You must be signed in to change notification settings - Fork 34.8k
gh-137758: Clarify os.stat_result time fields (since Unix epoch) and add datetime conversion note #137761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
gh-137758: Clarify os.stat_result time fields (since Unix epoch) and add datetime conversion note #137761
Changes from all commits
ead4f3f
a34b6df
49caa9f
49a652a
a6b8620
5cc8731
58d2f66
2dc9164
7805c8f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3263,15 +3263,18 @@ features: | |
|
|
||
| .. attribute:: st_atime | ||
|
|
||
| Time of most recent access expressed in seconds. | ||
| Time of most recent access expressed in | ||
| :ref:`seconds since the Unix epoch <stat-result-timestamps>`. | ||
|
|
||
| .. attribute:: st_mtime | ||
|
|
||
| Time of most recent content modification expressed in seconds. | ||
| Time of most recent content modification expressed in | ||
| :ref:`seconds since the Unix epoch <stat-result-timestamps>`. | ||
|
|
||
| .. attribute:: st_ctime | ||
|
|
||
| Time of most recent metadata change expressed in seconds. | ||
| Time of most recent metadata change expressed in | ||
| :ref:`seconds since the Unix epoch <stat-result-timestamps>`. | ||
|
|
||
| .. versionchanged:: 3.12 | ||
| ``st_ctime`` is deprecated on Windows. Use ``st_birthtime`` for | ||
|
|
@@ -3280,21 +3283,22 @@ features: | |
|
|
||
| .. attribute:: st_atime_ns | ||
|
|
||
| Time of most recent access expressed in nanoseconds as an integer. | ||
| Time of most recent access expressed in nanoseconds since the Unix epoch | ||
| as an integer. | ||
|
|
||
| .. versionadded:: 3.3 | ||
|
|
||
| .. attribute:: st_mtime_ns | ||
|
|
||
| Time of most recent content modification expressed in nanoseconds as an | ||
| integer. | ||
| Time of most recent content modification expressed in nanoseconds since | ||
| the Unix epoch as an integer. | ||
|
|
||
| .. versionadded:: 3.3 | ||
|
|
||
| .. attribute:: st_ctime_ns | ||
|
|
||
| Time of most recent metadata change expressed in nanoseconds as an | ||
| integer. | ||
| Time of most recent metadata change expressed in nanoseconds since the | ||
| Unix epoch as an integer. | ||
|
|
||
| .. versionadded:: 3.3 | ||
|
|
||
|
|
@@ -3305,16 +3309,18 @@ features: | |
|
|
||
| .. attribute:: st_birthtime | ||
|
|
||
| Time of file creation expressed in seconds. This attribute is not | ||
| always available, and may raise :exc:`AttributeError`. | ||
| Time of file creation expressed in | ||
| :ref:`seconds since the Unix epoch <stat-result-timestamps>`. | ||
| This attribute is not always available, | ||
| and may raise :exc:`AttributeError`. | ||
|
|
||
| .. versionchanged:: 3.12 | ||
| ``st_birthtime`` is now available on Windows. | ||
|
|
||
| .. attribute:: st_birthtime_ns | ||
|
|
||
| Time of file creation expressed in nanoseconds as an integer. | ||
| This attribute is not always available, and may raise | ||
| Time of file creation expressed in nanoseconds since the Unix epoch as an | ||
| integer. This attribute is not always available, and may raise | ||
| :exc:`AttributeError`. | ||
|
|
||
| .. versionadded:: 3.12 | ||
|
|
@@ -3338,6 +3344,18 @@ features: | |
| :attr:`st_atime_ns`, :attr:`st_mtime_ns`, :attr:`st_ctime_ns` and | ||
| :attr:`st_birthtime_ns`. | ||
|
|
||
| .. _stat-result-timestamps: | ||
|
|
||
| .. note:: | ||
|
|
||
| These timestamps are seconds (or nanoseconds for the ``*_ns`` variants) | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Optionally, we can add an anchor to this note and make "seconds since the Unix epoch" above link here. |
||
| since the Unix epoch (00:00:00 UTC, January 1, 1970), and are compatible | ||
| with :func:`time.time`. To convert a timestamp ``ts`` to a | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note that this won't work for nanosecond timestamps. |
||
| :class:`datetime.datetime`, use | ||
| :func:`datetime.datetime.fromtimestamp` for local time or | ||
| ``datetime.datetime.fromtimestamp(ts, tz=datetime.timezone.utc)`` for | ||
| UTC. | ||
|
|
||
| On some Unix systems (such as Linux), the following attributes may also be | ||
| available: | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can also link to the note here?