lubridate (version 1.3.1)

fit_to_timeline: Fit a POSIXlt date-time to the timeline

Description

The POSIXlt format allows you to create instants that do not exist in real life due to daylight savings time and other conventions. fit_to_timeline matches POSIXlt date-times to a real times. If an instant does not exist, fit to timeline will replace it with an NA. If an instant does exist, but has been paired with an incorrect timezone/daylight savings time combination, fit_to_timeline returns the instant with the correct combination.

Usage

fit_to_timeline(lt, class = "POSIXct")

Arguments

lt
a POSIXlt date-time object.
class
a character string that describes what type of object to return, POSIXlt or POSIXct. Defaults to POSIXct.

Value

  • a POSIXct or POSIXlt object that contains no illusory date-times

Examples

Run this code
tricky <- structure(list(sec = c(0, 0, 0, -1), min = c(0L, 5L, 0L, 0L),
hour = c(2L, 0L, 2L, 2L), mday = c(4L, 4L, 14L, 4L), mon = c(10L, 10L, 2L, 10L),
year = c(112L, 112L, 110L, 112L), wday = c(0L, 0L, 0L, 0L),
yday = c(308L, 308L, 72L, 308L), isdst = c(1L, 0L, 1L, 1L)),
.Names = c("sec", "min", "hour", "mday", "mon", "year", "wday", "yday",
"isdst"), class = c("POSIXlt", "POSIXt"), tzone = c("America/Chicago", "CST", "CDT"))
tricky
## [1] "2012-11-04 02:00:00 CDT"
## Doesn't exist because clocks "fall back" to 1:00 CST
## [2] "2012-11-04 00:05:00 CST" Times are still CDT, not CST at this instant
## [3] "2010-03-14 02:00:00 CDT"
## Doesn't exist because clocks "spring forward" past this time for daylight savings
## [4] "2012-11-04 01:59:59 CDT" Does exist, but has deceptive internal structure
fit_to_timeline(tricky)
## [1] "2012-11-04 02:00:00 CST" instant paired with correct timezone & DST comnination
## [2] "2012-11-04 00:05:00 CDT" instant paired with correct timezone & DST comnination
## [3] NA fake time changed to NA (compare to as.POSIXct(tricky))
## [4] "2012-11-04 01:59:59 CDT" real instant, left as is

Run the code above in your browser using DataCamp Workspace