我正在使用as.POSIXct()将字符串向量转换为日期格式。这是奇怪的事情:
as.POSIXct("2017-03-26 03:00:00.000",format="%Y-%m-%d %H")
#Gives
"2017-03-26 03:00:00 CEST"
#While
as.POSIXct("2017-03-26 02:00:00.000",format="%Y-%m-%d %H")
#Outputs
NA
这确实令人困惑和沮丧。似乎该函数确实不喜欢特定时间:02:00:00.000
我们可以指定时间%T
。在格式中,有分钟,秒和毫秒。因此,%H
仅匹配小时部分
as.POSIXct("2017-03-26 02:00:00.000",format="%Y-%m-%d %T")
[1] "2017-03-26 02:00:00 EDT"
或者也要注意毫秒
as.POSIXct("2017-03-26 02:00:00.000",format="%Y-%m-%d %H:%M:%OS")
#[1] "2017-03-26 02:00:00 EDT"
或使用lubridate
library(lubridate)
ymd_hms("2017-03-26 02:00:00.000")