[Datetime-SIG] Matching +-HH:MM in strptime

Random832 random832 at fastmail.com
Thu Oct 19 10:23:04 EDT 2017


On Thu, Oct 19, 2017, at 10:06, Paul G wrote:
> The argument for expanding the definition of %z that I find strongest is
> that according to the linux man pages (
> http://man7.org/linux/man-pages/man3/strptime.3.html ), while %z
> generates +-HHMM in strftime, strptime is supposed to match "An
> RFC-822/ISO 8601 standard timezone specification",and ISO 8601 uses
> +-HH:MM, so if we're following those linux pages, we should be accepting
> the version with the colon.

For whatever it's worth glibc strptime on linux does *not* in fact
accept +HH:MM, and if it is passed, it silently interprets, say, -05:30
as -05 (and :30 remains in the string for subsequent directives to
consume). Testing with an offset with zero minutes at the end of the
string does not account for this, which may be why some people in the
bug comments reported that it did support it.

> The argument that I find most compelling for adding a %:z directive are:
> 
>     1. maintains the symmetry between strftime and strptime
>     2. allows users to be stricter about their datetime format
>     3. has precedent in that GNU's `date` command accepts %z, %:z and
>     %::z formats

Just to be clear, date accepts them on input through date -d (which does
not use strptime or posix getdate, but its own internal parse_datetime
function)

> Can we establish some consensus on which should be done so that it can be
> implemented?

I do think it should be done, but if so it may be reasonable to talk
about implementing a portable version of time.strptime that will also
implement this feature.


More information about the Datetime-SIG mailing list