[R] strptime with +03:00 zone designator

Richard O'Keefe r@oknz @end|ng |rom gm@||@com
Mon Nov 6 06:37:34 CET 2023


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.
>
>
> 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]]



More information about the R-help mailing list