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.
On Mon, 6 Nov 2023 at 13:18, jim holtman <jholtman at 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 at
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 at 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]]