在R中的日期格式之间转换?

时间:2012-12-11 01:12:36

标签: r datetime

我在R中有一个data.frame(最初是CSV),日期有以下3种格式:

2011-06-02T17:16:05Z

2012-06-02T17:16:05-07:00

6/2/11 17:16:05

这是年 - 月 - 日时间。我不太清楚-07:00是什么,因为对于所有时间戳似乎都是相同的(除了某些时间是-08:00),但我猜这是某种类型的时区偏移。

我不太确定这些是什么格式(有人知道吗?),但我需要将其转换为这种格式:

6/2/11 17:16:05

这是年 - 月 - 日时间

我希望以这种方式执行此操作,以便CSV中的所有日期(在同一行中)转换为第二种格式。我怎样才能在R中完成这个?

可以找到完整的数据集here

2 个答案:

答案 0 :(得分:2)

这是另一种尝试,假设您的数据是以文字开头的:

test <- c("2011-06-02T17:16:05Z","2012-06-02T17:16:05-07:00")
format(as.POSIXct(test,format="%Y-%m-%dT17:%H:%M"),"%m/%d/%y %H:%M")

[1] "06/02/11 16:05" "06/02/12 16:05"

答案 1 :(得分:1)

您可以尝试以下操作,其中myDates将是日期列

format(strptime(myDates, format="%Y-%m-%dT17:%H:%M"), format= "%m/%d/%Y %H:%M")
[1] "06/02/2011 16:05" "06/02/2012 16:05"

or with 2-digit year

# Note the lower-case %y at the end
format(strptime(myDates, format="%Y-%m-%dT17:%H:%M"), format= "%m/%d/%y %H:%M")
[1] "06/02/11 16:05" "06/02/12 16:05"

至于Z,表示GMT(想想:伦敦) -7:00表示从GMT返回7小时(想想:科罗拉多州/ MST等)

请参阅here以获取更多参考资料