This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: datetime.utctimetuple() should not set tm_isdst flag to 0
Type: behavior Stage: patch review
Components: Documentation Versions: Python 3.6
Status: open Resolution:
Dependencies: Superseder:
Assigned To: belopolsky Nosy List: Gaurav Tatke, belopolsky, eric.araujo, hobbestigrou, karlcow, lemburg, p-ganssle, pitrou
Priority: normal Keywords: easy, patch

Created on 2010-06-16 03:36 by belopolsky, last changed 2022-04-11 14:57 by admin.

File name Uploaded Description Edit
timetuple_issue9004.patch Gaurav Tatke, 2016-12-27 08:16 review
Pull Requests
URL Status Linked Edit
PR 10870 closed belopolsky, 2018-12-03 18:52
PR 15773 karlcow, 2019-10-03 09:54
Messages (8)
msg107906 - (view) Author: Alexander Belopolsky (belopolsky) * (Python committer) Date: 2010-06-16 03:36
I find the following quite misleading:

>>> from datetime import datetime
>>> import time
>>> time.strftime('%c %z %Z', datetime.utcnow().utctimetuple())
'Wed Jun 16 03:26:26 2010 -0500 EST'

As far as I can tell, the only other function that uses the tm_isdst flag is time.mktime, but it expect a timetuple containing local time, not UTC time.
msg108278 - (view) Author: Alexander Belopolsky (belopolsky) * (Python committer) Date: 2010-06-21 15:35
With timezone.utc available in datetime module, users should be encouraged to use dt.astimezone(timezone.utc).timetuple() instead of dt.utctimetuple().  Note that the later will set tm_isdst to -1.  This observation can be used to argue for either of two ways to resolve this issue:

1. Since utctimetuple() is no longer necessary, and the alternative works correctly, there is no need to fix it.  Just recommend the astimezone use in the docs and explain the subtle difference.

2. Having two ways to do the same thing which have a subtle difference is not a good idea.

I am leaning towards #1, but would like to hear from others.
msg162633 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-06-11 18:04
> Just recommend the astimezone use in the docs
and recommend creating tz-aware instances in the first time (i.e. calling now(utc) instead of utcnow()), +1.
msg221894 - (view) Author: Alexander Belopolsky (belopolsky) * (Python committer) Date: 2014-06-29 20:13
Reclassifying this as a doc issue.
msg284072 - (view) Author: Gaurav Tatke (Gaurav Tatke) * Date: 2016-12-27 08:16
I am new to python and would like to contribute. I find this issue easy so changed the documentation of datetime module. I tested it with sphinx. Attaching a patch.

Please let me know if it is correct or needs changes.
Appreciate it!

msg330963 - (view) Author: Natal Ngétal (hobbestigrou) * Date: 2018-12-03 17:53
Please can you convert your patch to a pull request on github.
msg330969 - (view) Author: Alexander Belopolsky (belopolsky) * (Python committer) Date: 2018-12-03 18:53
I submitted Gaurav's patch as PR 10870.  Please review.
msg353837 - (view) Author: karl (karlcow) * Date: 2019-10-03 09:54
@gaurav The pull request
has been closed in favor of
which has already been merged.

So we can probably close here.
Date User Action Args
2022-04-11 14:57:02adminsetgithub: 53250
2019-10-03 09:54:22karlcowsetnosy: + karlcow

messages: + msg353837
pull_requests: + pull_request16145
2018-12-03 18:53:43belopolskysetmessages: + msg330969
2018-12-03 18:52:14belopolskysetstage: needs patch -> patch review
pull_requests: + pull_request10105
2018-12-03 17:53:07hobbestigrousetnosy: + hobbestigrou
messages: + msg330963
2018-07-05 15:56:46p-gansslesetnosy: + p-ganssle
2016-12-27 08:16:08Gaurav Tatkesetfiles: + timetuple_issue9004.patch

nosy: + Gaurav Tatke
messages: + msg284072

keywords: + patch
2016-09-18 10:05:50mark.dickinsonsetnosy: - mark.dickinson
2016-09-10 18:38:37belopolskysetversions: + Python 3.6, - Python 3.5
2014-06-29 20:15:06belopolskysetkeywords: + easy
2014-06-29 20:13:35belopolskysetstage: test needed -> needs patch
messages: + msg221894
components: + Documentation, - Extension Modules
versions: + Python 3.5, - Python 3.3
2014-06-29 20:12:02belopolskysetnosy: + lemburg
2012-06-11 18:04:22eric.araujosetnosy: + eric.araujo
messages: + msg162633
2011-01-11 02:04:01belopolskysetversions: + Python 3.3, - Python 3.2
2010-07-05 19:35:32belopolskysetnosy: + pitrou
2010-06-21 15:35:16belopolskysetmessages: + msg108278
2010-06-16 03:36:41belopolskycreate