[R] strptime with +03:00 zone designator

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Mon Nov 6 10:01:53 CET 2023


>>>>> Richard O'Keefe 
>>>>>     on Mon, 6 Nov 2023 18:37:34 +1300 writes:

    > Thanks to all who replied.  On Mon, 6 Nov 2023 at 18:37,
    > Richard O'Keefe <raoknz using gmail.com> wrote:

    >> OK, so the consensus is (1) One cannot make strptime
    >> accept ISO8601-compliant zone designators (2) The
    >> lubridate package can (3) Or one can hack away with
    >> regex.  Lubridate it is, then.
    >> 
    >> But I do regard strptime's inability to process
    >> ISO8601-compliant zone designators as a bug.

Did you try to submit it to R's bugzilla?

It's the first time I hear of this "Feature" of the ISO
standard, but then I'm not at all a timezone, and even less an
ISO standard expert.

Best,
Martin


    >> On Mon, 6 Nov 2023 at 13:18, jim holtman
    >> <jholtman using gmail.com> wrote:
    >> 
    >>> try using 'lubridate'
    >>> 
    >>> > library(lubridate)Attaching package: ‘lubridate’
    >>> 
    >>> The following objects are masked from ‘package:base’:
    >>> 
    >>> date, intersect, setdiff, union > x <-
    >>> "2017-02-28T13:35:00+03:00"> ymd_hms(x)[1] "2017-02-28
    >>> 10:35:00 UTC"
    >>> 
    >>> >
    >>> 
    >>> 
    >>> 
    >>> Thanks
    >>> 
    >>> Jim Holtman *Data Munger Guru*
    >>> 
    >>> 
    >>> *What is the problem that you are trying to solve?Tell
    >>> me what you want to do, not how you want to do it.*
    >>> 
    >>> 
    >>> On Sun, Nov 5, 2023 at 3:45 PM Richard O'Keefe
    >>> <raoknz using gmail.com> wrote:
    >>> 
    >>>> I have some data that includes timestamps like this:
    >>>> 2017-02-28T13:35:00+03:00 The documentation for
    >>>> strptime says that %z expects an offset like 0300.  I
    >>>> don't see any way in the documentation to get it to
    >>>> accept +hh:mm with a colon separator, and everything I
    >>>> tried gave me NA as the answer.
    >>>> 
    >>>> Section 4.2.5.1 of ISO 8601:2004(E) allows both the
    >>>> absence of colons in +hh[mm] (basic format) and the
    >>>> presence of colons in +hh:mm (extended format).  Again
    >>>> in section 4.2.5.2 where a zone offset is combined with
    >>>> a time of day: if you have hh:mm:ss you are using
    >>>> extended format and the offset MUST have a colon; if
    >>>> you have hhmmss you are using basic format and the
    >>>> offset MUST NOT have a colon.  And again in section
    >>>> 4.3.2 (complete representations of date and time of
    >>>> day).  If you use hyphens and colons in the date and
    >>>> time part you MUST have a colon in the zone designator.
    >>>> 
    >>>> So I am dealing with timestamps in strict ISO 8601
    >>>> complete extended representation, and it is rather
    >>>> frustrating that strptime doesn't deal with it simply.
    >>>> 
    >>>> The simplest thing would be for R's own version of
    >>>> strptime to allow an optional colon between the hour
    >>>> digits and the minute digits of a zone designator.
    >>>> 
    >>>> I'm about to clone the data source and edit it to
    >>>> remove the colons, but is there something obvious I am
    >>>> missing?
    >>>> 
    >>>> ______________________________________________
    >>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and
    >>>> more, see https://stat.ethz.ch/mailman/listinfo/r-help
    >>>> PLEASE do read the posting guide
    >>>> http://www.R-project.org/posting-guide.html and provide
    >>>> commented, minimal, self-contained, reproducible code.
    >>>> 
    >>> 

    > 	[[alternative HTML version deleted]]

    > ______________________________________________
    > R-help using r-project.org mailing list -- To UNSUBSCRIBE and
    > more, see https://stat.ethz.ch/mailman/listinfo/r-help
    > PLEASE do read the posting guide
    > http://www.R-project.org/posting-guide.html and provide
    > commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list