如何从strtime中提取年份?

如何从strtime中提取年份?,r,datetime,R,Datetime,我有以下格式的时间: t <- "4/2/2004 12:45" I can extract day and month using these two lines: strptime(t, "%m/%d/%Y %H:%M", tz="UTC")$day strptime(t, "%m/%d/%Y %H:%M", tz="UTC")$mday 我怎样才能确切地知道这一年?比如1987年、2012年等,而不是87年和12年 如果有任何其他功能可用于此,我也同意。添加1900。有关详细信

我有以下格式的时间:

t <- "4/2/2004 12:45"

I can extract day and month using these two lines:

strptime(t, "%m/%d/%Y %H:%M", tz="UTC")$day
strptime(t, "%m/%d/%Y %H:%M", tz="UTC")$mday
我怎样才能确切地知道这一年?比如1987年、2012年等,而不是87年和12年

如果有任何其他功能可用于此,我也同意。

添加1900。有关详细信息,请参见
?POSIXlt
的详细信息部分

> tm <- "4/2/2004 12:45"
> strptime(tm, "%m/%d/%Y %H:%M", tz="UTC")$year
[1] 104
> strptime(tm, "%m/%d/%Y %H:%M", tz="UTC")$year + 1900
[1] 2004
>tm strtime(tm,“%m/%d/%Y%H:%m”,tz=“UTC”)$year
[1] 104
>strtime(tm,“%m/%d/%Y%H:%m”,tz=“UTC”)$year+1900
[1] 2004

使用
lubridate
满足所有直观的时间戳处理需求:

library(lubridate)
t <- "4/2/2004 12:45"
t2 <- mdy_hm(t) # parsing format: month-day-year_hour-minute
day(t2)
yday(t2)
year(t2)
库(lubridate)
t使用基本包装:

t <- "4/2/2004 12:45"
as.numeric(format(as.Date(t, "%m/%d/%Y %H:%M", tz="UTC"), "%Y"))

year(strtime(t,“%m/%d/%Y%H:%m”,tz=“UTC”))#[1]2004
@akrun不是一个
lubridate
函数吗?我没有加载lubridate,但是加载了
数据。table
dplyr
也是一个
数据。table
函数。这很好。您能告诉我Lubridate是否是执行所有日期时间相关处理的建议方法吗?
Lubridate
使用简单易懂的语法,使解析和处理日期和时间变得更加容易,并有助于减少用户错误。没有“建议的方法”,但我发现它非常有用,而且是一个流行的软件包。
t <- "4/2/2004 12:45"
as.numeric(format(as.Date(t, "%m/%d/%Y %H:%M", tz="UTC"), "%Y"))
[1] 2004