我在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。
答案 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以获取更多参考资料