概述
R中主要的時間物件為POSIXct
和POSIXlt
。Date-Time Classes第8頁內提到設計者們在設計這類物件的考量:
- 日期格式應該由locale參數來決定。
- 時間應該由電腦的Time zones來決定。
- 參考資料庫標準(SQL99 ISO)中使用的時間格式
timestamp with time zone
- 考量到跨平台,使用[POSIX]
[POSIX]是以UTC為基準,以c語言的double
型態來儲存的時間格式,
而POSIXct
則是代表以這種絕對座標所表示的時間。POSIXlt
則是另一種包含timezones的格式
(lt代表local time)。其中timezone是以屬性tzone來代表的。
以以下的程式碼為例:
rout example from [Date-Time Classes] > file.info(dir())[, "mtime", drop=FALSE] data 2012-02-29 21:18:11
在預設下,是以ISO標準格式來表示日期時間。
r example from [Date-Time Classes] > file_time <- file.info(dir())[, "mtime", drop=FALSE] > file_time data 2012-02-29 21:18:11 > format(file_time, format="%x %X") data 2012/2/29 下午 09:18:11
另外再列了幾個Date-Time Classes內的範例
函數心得
Sys.time
r Sys.time function ()
回傳POSIXct
物件來表示現在的時間
Sys.Date
r Sys.time function () {as.Date(as.POSIXlt(Sys.time()))}
回傳Date
物件來表示現在的日期
trunc
r trunc.POSIXt function (x, units = c("secs", "mins", "hours", "days"), ...)
將x
的時間格式轉換為以units
為單位