When range checking was added to time.strftime() a check was placed on tm_isdst
to make sure it fell within [-1, 1] just in case someone implementing
strftime() in libc was stupid enough to assume this. Turns out, though, some
OSs (e.g. zOS) are stupid enough to use values outside of this range for time
structs created by the system itself. So instead of throwing a ValueError,
tm_isdst is now normalized before being passed to strftime().

Fixes issue #6823. Thanks Robert Shapiro for diagnosing the problem and
contributing an initial patch.
diff --git a/Misc/NEWS b/Misc/NEWS
index 89cbf3c..15db199 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1340,6 +1340,10 @@
 Extension Modules
 -----------------
 
+- Issue #6823: Allow time.strftime() to accept a tuple with a isdst field
+  outside of the range of [-1, 1] by normalizing the value to within that
+  range.
+
 - Issue #6877: Make it possible to link the readline extension to libedit
   on OSX.