(PR#6975) [Rd] can't create a POSIXct from an actual Unix timestamp

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Jun 13 08:45:33 CEST 2004

On Sun, 13 Jun 2004 phil at google.com wrote:

> Full_Name: Philip Gross
> Version: 1.9.0
> OS: Linux Redhat 9.0
> Submission from: (NULL) (
> Among the many conversions for POSIXct values, there does not seem to be one
> which will accept an actual POSIX timestamp, e.g. as produced by MySQL's
> UNIX_TIMESTAMP() function.  I have fixed this by adding the following lines to
> R-1.9.0/src/library/base/R/datetime.R , at line 89:
>     if(is.numeric(x))
>         return(structure(x, class = c("POSIXt", "POSIXct")))
> I am far from an R guru, and this was done based on pattern matching the code. 
> It seems to work, though.

This cannot be correct, as the numeric value could be the integer number
of days after 1980-01-01, for example.  This is a deliberate omission, but
you will note (I hope) that R does handle actual Unix timestamps in e.g.  
Sys.time() and file.info().  (They use code equivalent to yours, *when*
the interpretation of the number is known, *and* x is known to be double 
and not integer.)

Note this is not a bug, and would not have been even if your suggestion 
had been correct.  Please read the section on BUGS in the FAQ.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list