diff --git a/Doc/library/time.rst b/Doc/library/time.rst index 1ffef2b2449..c38b0e0678c 100644 --- a/Doc/library/time.rst +++ b/Doc/library/time.rst @@ -87,25 +87,26 @@ An explanation of some terminology and conventions is in order. +=======+===================+=================================+ | 0 | :attr:`tm_year` | (for example, 1993) | +-------+-------------------+---------------------------------+ - | 1 | :attr:`tm_mon` | range [1,12] | + | 1 | :attr:`tm_mon` | range [1, 12] | +-------+-------------------+---------------------------------+ - | 2 | :attr:`tm_mday` | range [1,31] | + | 2 | :attr:`tm_mday` | range [1, 31] | +-------+-------------------+---------------------------------+ - | 3 | :attr:`tm_hour` | range [0,23] | + | 3 | :attr:`tm_hour` | range [0, 23] | +-------+-------------------+---------------------------------+ - | 4 | :attr:`tm_min` | range [0,59] | + | 4 | :attr:`tm_min` | range [0, 59] | +-------+-------------------+---------------------------------+ - | 5 | :attr:`tm_sec` | range [0,61]; see **(1)** in | + | 5 | :attr:`tm_sec` | range [0, 61]; see **(1)** in | | | | :func:`strftime` description | +-------+-------------------+---------------------------------+ - | 6 | :attr:`tm_wday` | range [0,6], Monday is 0 | + | 6 | :attr:`tm_wday` | range [0, 6], Monday is 0 | +-------+-------------------+---------------------------------+ - | 7 | :attr:`tm_yday` | range [1,366] | + | 7 | :attr:`tm_yday` | range [1, 366] | +-------+-------------------+---------------------------------+ | 8 | :attr:`tm_isdst` | 0, 1 or -1; see below | +-------+-------------------+---------------------------------+ - Note that unlike the C structure, the month value is a range of 1-12, not 0-11. + Note that unlike the C structure, the month value is a range of [1, 12], + not [0, 11]. A year value will be handled as described under "Year 2000 (Y2K) issues" above. A ``-1`` argument as the daylight savings flag, passed to :func:`mktime` will usually result in the correct daylight savings state to be filled in. diff --git a/Misc/NEWS b/Misc/NEWS index 8608d03b17b..1d5cc023c12 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -52,6 +52,8 @@ C-API Library ------- +- Issue #8899: time.struct_time now has class and atribute docstrings. + - Issue #4487: email now accepts as charset aliases all codec aliases accepted by the codecs module. diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 78dec7c94a6..92f58c23f9e 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -216,21 +216,27 @@ Delay execution for a given number of seconds. The argument may be\n\ a floating point number for subsecond precision."); static PyStructSequence_Field struct_time_type_fields[] = { - {"tm_year", NULL}, - {"tm_mon", NULL}, - {"tm_mday", NULL}, - {"tm_hour", NULL}, - {"tm_min", NULL}, - {"tm_sec", NULL}, - {"tm_wday", NULL}, - {"tm_yday", NULL}, - {"tm_isdst", NULL}, + {"tm_year", "year, for example, 1993"}, + {"tm_mon", "month of year, range [1, 12]"}, + {"tm_mday", "day of month, range [1, 31]"}, + {"tm_hour", "hours, range [0, 23]"}, + {"tm_min", "minutes, range [0, 59]"}, + {"tm_sec", "seconds, range [0, 61])"}, + {"tm_wday", "day of week, range [0, 6], Monday is 0"}, + {"tm_yday", "day of year, range [1, 366]"}, + {"tm_isdst", "1 if summer time is in effect, 0 if not, and -1 if unknown"}, {0} }; static PyStructSequence_Desc struct_time_type_desc = { "time.struct_time", - NULL, + "The time value as returned by gmtime(), localtime(), and strptime(), and\n" + " accepted by asctime(), mktime() and strftime(). May be considered as a\n" + " sequence of 9 integers.\n\n" + " Note that several fields' values are not the same as those defined by\n" + " the C language standard for struct tm. For example, the value of the\n" + " field tm_year is the actual year, not year - 1900. See individual\n" + " fields' descriptions for details.", struct_time_type_fields, 9, };