[R] convert character to POSIXct
Aarts, Geert
Geert.Aarts at wur.nl
Tue Sep 2 17:06:49 CEST 2003
Dear list-members,
I would like to calculate the difference between two points in time. To convert a 'time (GMT)'-character with the format "1/1/1999 01:01:01" into an object of class "POSIXct"', I first use the strptime() as suggested in the details help(as.POSIXct).
e.g.
starttime<-strptime("1/1/1999 01:01:01",format="%d/%m/%Y %H:%M:%S")
endtime<-strptime("1/8/1999 01:01:01",format="%d/%m/%Y %H:%M:%S")
> starttime
[1] "1999-01-01 01:01:01"
> endtime
[1] "1999-08-01 01:01:01"
If I substract these from each other,
endtime-starttime
>Time difference of 211.9583 days
Which should mean that the default is in day light saving.
Next I convert these times into as.POSIXct and substract them
as.POSIXct(starttime)
[1] "1999-01-01 01:01:01 GMT Standard Time"
as.POSIXct(endtime)
[1] "1999-08-01 01:01:01 GMT Standard Time"
as.POSIXct(endtime)-as.POSIXct(starttime)
Time difference of 211.9583 days
So although the calculation suggest time is in daylight saving, it actually states that it is in "GMT Standard Time"
Can somebody tell me whether my thoughts are correct and if not, tell me why this is happening?
PS.
> as.POSIXct(endtime, tz="GMT")-as.POSIXct(starttime, tz="GMT")
Time difference of 212 days
So this seems to work correctly.
Kinds regards, Geert (Windows, R-version 1.7.0)
More information about the R-help
mailing list