Skip to content

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

2 messages · phil@google.com, Brian Ripley

#
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.
#
On Sun, 13 Jun 2004 phil@google.com wrote:

            
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.