POSIXct/lt supports fractional seconds (see Sub-second Accuracy section of man page), but there seem to be some inconsistencies in their handling.
Converting to POSIXlt and back does not give back the same time for times before the origin: > t0 <- as.POSIXct('1934-01-05 23:59:59.00001') > t0 [1] "1934-01-06 00:00:00 EST" # rounding issue, see below > as.POSIXlt(t0) [1] "1934-01-06 00:00:00 EST" > as.POSIXct(as.POSIXlt(t0)) [1] "1934-01-06 00:00:01 EST" # ??? > as.POSIXct(as.POSIXlt(t0)) - t0 Time difference of 1 secs Also, POSIXct always rounds up when printing for times before the origin: > as.POSIXct('1934-01-05 10:10:23') [1] "1934-01-05 10:10:23 EST" > as.POSIXct('1934-01-05 10:10:23.00001') [1] "1934-01-05 10:10:24 EST" and always rounds down when printing times after the origin: as.POSIXct('2010-01-05 23:59:59.4') [1] "2010-01-05 23:59:59 EST" > as.POSIXct('2010-01-05 23:59:59.6') [1] "2010-01-05 23:59:59 EST" > as.POSIXct('2010-01-05 23:59:59.999') [1] "2010-01-05 23:59:59 EST" But the Description section says that POSIXct "represent[s] calendar dates and times (to the nearest second)". "Nearest" would seem to imply printing rounding-to-nearest, not rounding-up or rounding-down. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel