(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) (65.57.245.11)
> 
> 
> 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