很多人都会问如何剥夺时间并保留日期,但另一方面呢?给出:
myDateTime <- "11/02/2014 14:22:45"
我想看看:
myTime
[1] "14:22:45"
不需要时区。
我已经尝试过(从其他答案)
as.POSIXct(substr(myDateTime, 12,19),format="%H:%M:%S")
[1]“2013-04-13 14:22:45 NZST”
目的是分析仅在一天中的几天内记录的事件。
由于
修改
事实证明,没有纯粹的“时间”对象,所以每次都必须有一个日期。
最后我用了
as.POSIXct(as.numeric(as.POSIXct(myDateTime)) %% 86400, origin = "2000-01-01")
而不是角色解决方案,因为我需要对结果进行算术运算。这个解决方案类似于我原来的解决方案,除了可以一致地控制日期 - 在这种情况下是“2000-01-01”,而我的尝试只是在运行时使用了当前日期。
答案 0 :(得分:22)
我认为你正在寻找format
功能。
(x <- strptime(myDateTime, format="%d/%m/%Y %H:%M:%S"))
#[1] "2014-02-11 14:22:45"
format(x, "%H:%M:%S")
#[1] "14:22:45"
那是character
,而不是“时间”,但是如果你的意思是“分析几天内按时记录的事件”,那么aggregate
就可以使用{{1}}。
答案 1 :(得分:4)
如果格林威治标准时间内的时间对您的问题有用,则可以使用余数运算符%%
获取此值,其余模数为86400
(一天中的秒数)。
stamps <- c("2013-04-12 19:00:00", "2010-04-01 19:00:01", "2018-06-18 19:00:02")
as.numeric(as.POSIXct(stamps)) %% 86400
## [1] 0 1 2