Skip to content

Conversation

@appeltel
Copy link
Contributor

Clarify the documentation of time.time by more
precisely defining what is meant by "seconds since
the epoch" on most platforms. Additionally explain
how gmtime and localtime may be used to extract
calendar components and convert to a more common
date format.

@Haypo

https://bugs.python.org/issue29026

Clarify the documentation of time.time by more precisely defining what is meant by "seconds since the epoch" on most platforms. Additionally explain how gmtime and localtime may be used to extract calendar components and convert to a more common date format.
@vstinner
Copy link
Member

Thank you for the new doc. It contains more info on timezone (UTC) and leap seconds (excluded).

Copy link
Member

@vstinnervstinner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I saw a few more minor issues.

On Windows and most Unix systems, the epoch is January 1, 1970,
00:00:00 (UTC) and leap seconds are not counted towards the time
in seconds since the epoch. This is commonly referred to as
`Unix time <https://en.wikipedia.org/wiki/Unix_time>`_.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO it's worth it to repeat here:

To find out what the epoch is on a given platform, look at gmtime(0).

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repeated in d387bf7

.. function:: time()

Return the time in seconds since the epoch as a floating point number.
Return the time in seconds since the epoch as a floating point
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add a link on the "epoch" word to its definition.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added link in d387bf7

1970. To find out what the epoch is, look at ``gmtime(0)``.
* The :dfn:`epoch` is the point where the time starts, and is platform
dependent. For Unix, the epoch is January 1, 1970, 00:00:00 (UTC).
To find out what the epoch is on a given platform, look at ``gmtime(0)``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume gmtime(0) is time.gmtime(0) here. If I'm correct, we can use this as an opportunity to make it clearer.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it to time.gmtime(0) where it first appears in d387bf7. However, when the statement is repeated in the documentation of time.time, I retain gmtime(0) as this appears to be the convention used in all the function docs for the module.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, failed to amend commit before pushing, I fixed to use doc conventions in 263a4f4


* The term :dfn:`seconds since the epoch` refers to the total number
of elapsed seconds since the epoch, typically excluding
`leap seconds <https://en.wikipedia.org/wiki/Leap_second>`_.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say add

.. `leap seconds`: https://en.wikipedia.org/wiki/Leap_second

and use

`leap-seconds`_

everytime you need the Wikipedia article.

(I might the syntax got wrong so please try first :))

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in d387bf7, also changed one other mention of leap seconds to link.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, failed to add to amended commit before push - added that other mention in 263a4f4

@codecov
Copy link

codecovbot commented Feb 14, 2017

Codecov Report

Merging #34 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@ Coverage Diff @@## master #34 +/- ## ========================================== + Coverage 82.37% 82.38% +0.01%  ========================================== Files 1427 1428 +1 Lines 350948 351138 +190 ========================================== + Hits 289088 289294 +206 + Misses 61860 61844 -16

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e7ffb99...263a4f4. Read the comment docs.

@vstinnervstinner merged commit 23557d5 into python:masterFeb 16, 2017
@vstinner
Copy link
Member

Thanks! I merged the PR.

Mariatta referenced this pull request in Mariatta/cpython Mar 3, 2017
* bpo-29026: Clarity documentation of time.time Clarify the documentation of time.time by more precisely defining what is meant by "seconds since the epoch" on most platforms. Additionally explain how gmtime and localtime may be used to extract calendar components and convert to a more common date format. * bpo-29026: Minor improvements for time.time doc * bpo-29026: Consistency fixes for time.time doc (cherry picked from commit 23557d5)
Mariatta referenced this pull request in Mariatta/cpython Mar 3, 2017
* bpo-29026: Clarity documentation of time.time Clarify the documentation of time.time by more precisely defining what is meant by "seconds since the epoch" on most platforms. Additionally explain how gmtime and localtime may be used to extract calendar components and convert to a more common date format. * bpo-29026: Minor improvements for time.time doc * bpo-29026: Consistency fixes for time.time doc (cherry picked from commit 23557d5)
Mariatta added a commit that referenced this pull request Mar 3, 2017
Mariatta added a commit that referenced this pull request Mar 3, 2017
tiran pushed a commit to tiran/cpython that referenced this pull request Aug 21, 2022
munmap pages on shutdown, keep FILE open
jaraco pushed a commit that referenced this pull request Dec 2, 2022
jaraco pushed a commit to jaraco/cpython that referenced this pull request Feb 17, 2023
oraluben pushed a commit to oraluben/cpython that referenced this pull request Jun 25, 2023
* fix: mark interpreter frames as tier 2 or not * Test: Added tests for python#33 --------- Co-authored-by: Ken Jin <[email protected]>
nanjekyejoannah pushed a commit to nanjekyejoannah/cpython that referenced this pull request Feb 20, 2024
…h_recent_assumptions Warn for string cmp with new string warning assumptions
picnixz added a commit to picnixz/cpython that referenced this pull request Dec 8, 2025
* fix missing `PyLazyImport_CheckExact` * fix missing lazy-related symbols * fix missing lazy-related symbols * `extern` seems enough * Export _PyImport_LoadLazyImportTstate for JIT
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@appeltel@vstinner@berkerpeksag@methane@Mariatta@the-knights-who-say-ni