POSIXlt 格式允許您創建由於夏令時和其他約定而在現實生活中不存在的瞬間。 fit_to_timeline 將 POSIXlt 日期時間與實際時間相匹配。如果某個瞬間不存在,適合時間線會將其替換為 NA。如果某個時刻確實存在,但與不正確的時區/夏令時組合配對,fit_to_timeline 將返回具有正確組合的時刻。
參數
- lt
-
POSIXlt 日期時間對象。
- class
-
說明要返回的對象類型的字符串,POSIXlt 或 POSIXct。默認為 POSIXct。這是為了避免不必要的轉換而進行的優化。
- simple
-
如果屬實,潤滑不嘗試檢測無意義的 time-dates 或更正時區。不會生成 NA,而是返回最有意義的有效日期。請參閱示例。
例子
if (FALSE) {
tricky <- structure(list(
sec = c(5, 0, 0, -1),
min = c(0L, 5L, 5L, 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, 0L, 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" DST gap
## [4] "2012-11-04 01:59:59 CDT" Does exist, but has deceptive internal structure
fit_to_timeline(tricky)
## Returns:
## [1] "2012-11-04 02:00:00 CST" instant paired with correct tz & DST combination
## [2] "2012-11-04 00:05:00 CDT" instant paired with correct tz & DST combination
## [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
fit_to_timeline(tricky, simple = TRUE)
## Returns valid time-dates by extrapolating CDT and CST zones:
## [1] "2012-11-04 01:00:05 CST" "2012-11-04 01:05:00 CDT"
## [3] "2010-03-14 03:05:00 CDT" "2012-11-04 01:59:59 CDT"
}
相關用法
- R lubridate force_tz 替換時區以創建新的日期時間
- R lubridate format_ISO8601 采用 ISO8601 字符格式的格式
- R lubridate DateTimeUpdate 更改日期對象的組成部分
- R lubridate stamp 基於人性化模板設置日期和時間格式
- R lubridate interval 用於創建和操作 Interval 對象的實用程序
- R lubridate is.difftime x 是 difftime 對象嗎?
- R lubridate as_date 將對象轉換為日期或日期時間
- R lubridate date 獲取/設置日期時間的日期部分
- R lubridate round_date 日期時間對象的舍入、取整和取整方法
- R lubridate make_difftime 創建一個 difftime 對象。
- R lubridate is.timespan x 是時間長度嗎?
- R lubridate with_tz 獲取不同時區的日期時間
- R lubridate mplus 在日期中添加和減去月份,但不超過新月份的最後一天
- R lubridate cyclic_encoding 日期時間的循環編碼
- R lubridate as.interval 將對象更改為間隔
- R lubridate second 獲取/設置日期時間的秒部分
- R lubridate quarter 獲取日期時間的財政季度和學期
- R lubridate posix_utils 各種 POSIX 實用程序
- R lubridate date_decimal 將小數轉換為日期
- R lubridate as.duration 將對象更改為持續時間
- R lubridate hour 獲取/設置日期時間的小時部分
- R lubridate minute 獲取/設置日期時間的分鍾部分
- R lubridate month 獲取/設置日期時間的月份部分
- R lubridate duration 創建一個持續時間對象。
- R lubridate leap_year 一年是閏年嗎?
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Fit a POSIXlt date-time to the timeline。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。