[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2018-07-05 Thread Guido van Rossum


Change by Guido van Rossum :


--
nosy:  -gvanrossum

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2018-07-05 Thread Paul Ganssle


Paul Ganssle  added the comment:

I believe this can be consolidated with #15873 and closed, since that is 
finished and available in Python 3.7.

--
nosy: +p-ganssle

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-10-25 Thread Guido van Rossum

Guido van Rossum  added the comment:

SGTM.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-10-25 Thread Alexander Belopolsky

Alexander Belopolsky  added the comment:

I am going to merge PR 4015 submitted for issue 31800.  That issue asks to make 
%z strptime format accept offsets with : separators.  Given that a similar 
feature has been added to glibc several years ago, I don't see much need for 
bikeshedding.  This issue will remain open and will focus on strftime.

--
dependencies: +datetime.strptime: Support for parsing offsets with a colon

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-10-18 Thread Mario Corchero

Mario Corchero  added the comment:

Wrote https://bugs.python.org/issue31800 without realising this issue was open 
(Thanks for bringing it up Martin Panter).

issue31800 basically just adds the ability to parse NN:NN to the already 
existing python isoformat function when %z is specified.
Rather than adding "%:z".

As available as well in linux strptime: 
http://man7.org/linux/man-pages/man3/strptime.3.html

I'd really like to see a way to parse isoformatted dates and this is the only 
thing in the middle. Happy to continue with the other issue/PR or help out here 
if needed.

Thanks! ^^

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-10-17 Thread Mario Corchero

Change by Mario Corchero :


--
nosy: +mariocj89

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-27 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

John,

An RFC3339 parser is beyond the scope of this issue which is limited to adding 
str[fp]time code(s) to produce and consume RFC3339-formatted timezones.

We can still have fromisoformat() constructor implemented in 3.7, but someone 
needs to address the issues raised at #15873.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-27 Thread John Nagle

John Nagle added the comment:

As the original author of the predecessor bug report (issue 15873) in 2012, I 
would suggest that there's too much bikeshedding here. I filed this bug because 
there was no usable ISO8601 date parser available.  PyPi contained four 
slightly different buggy ones, and three more versions were found later.  

I suggested following RFC3339, "Date and Time on the Internet: Timestamps", 
section 5.6, which specifies a clear subset of ISO8601.  Five years later, I 
suggest just going with that. Fancier variations belong in non-standard 
libraries.

Date parsing should not be platform-dependent.  Using an available C library 
was convenient, but not portable. 

Let's get this done.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-26 Thread Guido van Rossum

Guido van Rossum added the comment:

Please do! I have no opinion on %::z but maybe you can find inspiration in the 
Zen of Python. :-)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-26 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

This issue is waiting for the final decision on #5288.  If sub-minute offsets 
support is accepted, I still don't think we need %::z because %:z can simply 
add non-zero :seconds as needed.  There are also some review comments on the 
latest patch that have not been addressed.  Overall this is an easy issue and 
it would be quite doable to get it resolved for 3.7.

--
versions: +Python 3.7 -Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-26 Thread Guido van Rossum

Guido van Rossum added the comment:

Alexander, can you summarize the status of this issue? Maybe we can move 
forward for 3.7?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2017-07-26 Thread Naotoshi Seo

Naotoshi Seo added the comment:

Any progress here? I want `%:z` strftime.

By the way, ruby strptime works as:

```
irb(main):008:0* Time.strptime('2015-01-01T01:01:01+09:00', 
'%Y-%m-%dT%H:%M:%S%z')
=> 2015-01-01 01:01:01 +0900
irb(main):009:0> Time.strptime('2015-01-01T01:01:01+0900', 
'%Y-%m-%dT%H:%M:%S%z')
=> 2015-01-01 01:01:01 +0900
irb(main):010:0> Time.strptime('2015-01-01T01:01:01UTC', '%Y-%m-%dT%H:%M:%S%z')
=> 2015-01-01 01:01:01 UTC
irb(main):011:0> Time.strptime('2015-01-01T01:01:01Z', '%Y-%m-%dT%H:%M:%S%z')
=> 2015-01-01 01:01:01 UTC
irb(main):020:0> Time.strptime('2015-01-01T01:01:01Asia/Tokyo', 
'%Y-%m-%dT%H:%M:%S%z')
=> 2015-01-01 01:01:01 +0900
```

```
irb(main):015:0* Time.strptime('2015-01-01T01:01:01+09:00', 
'%Y-%m-%dT%H:%M:%S%Z')
=> 2015-01-01 01:01:01 +0900
irb(main):016:0> Time.strptime('2015-01-01T01:01:01+0900', 
'%Y-%m-%dT%H:%M:%S%Z')
=> 2015-01-01 01:01:01 +0900
irb(main):017:0> Time.strptime('2015-01-01T01:01:01UTC', '%Y-%m-%dT%H:%M:%S%Z')
=> 2015-01-01 01:01:01 UTC
irb(main):018:0> Time.strptime('2015-01-01T01:01:01Z', '%Y-%m-%dT%H:%M:%S%Z')
=> 2015-01-01 01:01:01 UTC
irb(main):019:0> Time.strptime('2015-01-01T01:01:01Asia/Tokyo', 
'%Y-%m-%dT%H:%M:%S%Z')
=> 2015-01-01 01:01:01 +0900
```

--
nosy: +sonots

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-12-13 Thread Mantas Zimnickas

Changes by Mantas Zimnickas :


--
nosy: +sirex

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-19 Thread Anders Hovmöller

Anders Hovmöller added the comment:

> The `arrow` library depends on the supposed "strict" behaviour of strptime 
> that has never been guaranteed, which often results in very buggy behaviour 
> under some conditions.

Well… the arrow library accepts all sorts of broken input and gives you a date 
back. I think they even think that’s a feature and not a bug so no use in 
trying to help people who are adamant that they don’t want to be helped :/

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-16 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

Antti, while I see some convenience in making %z parsing promiscuous, there is 
clear utility in adding %:z to strftime.  If we do that, not allowing the same 
for parsing will be odd.  Let's start with that.  A case for a promiscuous %z 
can be made later.

On a separate issue, note that datetime.isoformat() has recently grown a 
timespec option.  See issue 19475.  I wonder if it would make sense to add a 
tzspec option to control the way timezone is formatted.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-16 Thread Antti Haapala

Antti Haapala added the comment:

Alexander: that is true, because they are *separate* conversion flags. 

However even the POSIX standard strptime has some leniency: '%m` and `%d` 
accept the numbers *without* leading zeroes. This actually also means that one 
cannot use `%Y%m%d` to detect an invalid ISO timestamp:

>>> datetime.datetime.strptime('22', '%Y%m%d')
datetime.datetime(, 2, 2, 0, 0)

The `arrow` library depends on the supposed "strict" behaviour of strptime that 
has never been guaranteed, which often results in very buggy behaviour under 
some conditions.



(Also, it must be noted that GNU date program doesn't use these formats to 
*parse* dates, and POSIX strptime in *C* library outright ignores any timezone 
information)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-16 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

"Be conservative in what you do, be liberal in what you accept from others"

I would agree to this approach with respect to a proposed fromisoformat() 
method (see issue 15873), but setptime seems to be about specifying an exact 
format.  For example, "%Y%m%d" will not accept "2016-07-16".

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-16 Thread Antti Haapala

Antti Haapala added the comment:

"Be conservative in what you do, be liberal in what you accept from others" 
they say. Also Z as a timezone designator is also widely used in iso 8601 
timestamps. I believe the effort should be made to *parse* *any/all* of the ISO 
8601 supported time-zone codes with one conversion, the list is not that long, 
just 'Z', HH, HH:MM, HHMM, longest match. Literal 'Z' really does not need to 
be supported for *output* at all, but for input, please.

Otherwise this will still go down the road of iso8601 library, which just tries 
to support all the YYmmddTHHMMSS.FF variants. It uses regular 
expressions to parse the dates as it is faster than trying N different formats 
with `strptime`

--
nosy: +ztane

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-15 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

Sorry, the tracker messed up the URL: go to

https://github.com/abalkin/cpython.git

and select branch:issue24773-s3

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2016-07-15 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

Since this is closely related to issue 15873, I am merging the nosy lists.

As far as I can tell, the patch just needs tests and a final decision on issue 
5288. I don't think it is at all controversial, but we need to relax the offset 
restrictions before ::z code can go in.

shanmbic, you can use my PEP 495 branch to test.  See 
.

--
nosy: +Anders.Hovmöller, Arfrever, Eric.Hanchrow, Roman.Evstifeev, SilentGhost, 
aymeric.augustin, barry, berker.peksag, cvrebert, davydov, deronnax, 
eric.araujo, flying sheep, haypo, jcea, jstasiak, jwilk, karlcow, kirpit, 
mcepl, mihaic, nagle, pbryan, perey, piotr.dobrogost, r.david.murray, roysmith
stage: patch review -> commit review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-10-06 Thread Martin Panter

Martin Panter added the comment:

Okay I am happy to be wrong about Python allowing seconds resolution.

I notice that Issue 12006 was committed, which adds a second table of 
Python-only codes for ISO 8601 values. The proposed entries here could be 
incorporated into that table, and the text above it modified to suit. That 
would solve my C89 library problem.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-10-04 Thread shanmbic

shanmbic added the comment:

I modified the "format_utcoffset" function in "_datetimemodule.c", to accept 
one more parameter "secondsrequired" . It is a boolean variable (PyObject) , 
which when set to true, the function will return the offset formatted as 
"+HH:MM:SS" or "-HH:MM:SS". I also modified the "wrap_strftime" function to 
also accept the strings "%:z" and "%::z" as format specifiers. This is my first 
contribution to python , so my approach of modifying a function's default 
parameters might not be correct. Any help is appreciated 
Thanks

--
components: +ctypes
hgrepos: +319
keywords: +patch
nosy: +shanmbic
Added file: http://bugs.python.org/file40675/datetime.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-10-04 Thread Martin Panter

Martin Panter added the comment:

I added some comments on Rietveld. I guess the documentation should get notices 
and What’s New entries saying it is new in 3.6. Test cases would be good, 
including negative ones to check error handling is sensible if the Z is 
missing. Also shanmbic, perhaps look at signing the contributor agreement 
 if you haven’t already.

Adding to the list of format codes means that the statement at the top of the 
list about them all being required by C89 will need fixing.

For parsing, perhaps the existing %z code could be extended to accept colons, 
without needing to specify a new %:z code. Although if %:z is added for 
formatting, it should also be supported for parsing.

I am not convinced that it is worth adding %::z or %:::z to Python. The 
documentation of tzinfo.utcoffset() says it returns the offset “in minutes”, 
hinting that sub-minute offsets are not supported. RFC 3339 acknowledges that 
sub-minute offsets exist in history, but AFAIK neither RFC 3339 nor ISO 8601 
support them. So I think it is too specialized to build %::z into Python. And I 
don’t imagine the %:::z necessary precision version would be used much either.

--
nosy: +martin.panter
stage: needs patch -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-10-04 Thread Martin Panter

Changes by Martin Panter :


--
components: +Extension Modules -ctypes

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-09-29 Thread Alexander Belopolsky

Changes by Alexander Belopolsky :


--
assignee:  -> belopolsky
keywords: +easy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-09-04 Thread Alexander Belopolsky

Alexander Belopolsky added the comment:

This request is similar to (if not a duplicate of) issue 15873.

Gnu date uses the following extensions to %z instruction of strftime/strptime:

   %z +hhmm numeric timezone (e.g., -0400)

   %:z+hh:mm numeric timezone (e.g., -04:00)

   %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

   %:::z  numeric time zone with : to necessary precision (e.g., -04, 
+05:30)

I think it is reasonable to add those to python.

--
nosy: +belopolsky

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-09-04 Thread Alexander Belopolsky

Changes by Alexander Belopolsky :


--
stage:  -> needs patch
type:  -> enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue24954] No way to generate or parse timezone as produced by datetime.isoformat()

2015-08-28 Thread Guido van Rossum

New submission from Guido van Rossum:

The datetime isoformat() function for an aware datetime appends the timezone in 
the form +HH:MM or -HH:MM. But the %z format produces (strftime) or parses 
(strptime) either +HHMM or -HHMM. I looked it up on Wikipedia, and the ISO 8601 
standard indeed uses the colon. It would be nice if there was a new format 
character that could produce or parse the colon...

--
messages: 249305
nosy: gvanrossum
priority: normal
severity: normal
status: open
title: No way to generate or parse timezone as produced by datetime.isoformat()
versions: Python 3.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24954
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com