4

我在 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 中做到这一点?

完整的数据集可以在这里找到。

4

2 回答 2

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"
于 2012-12-11T01:43:19.987 回答
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,表示格林威治标准时间(想想:伦敦)。
表示-7:00从格林威治标准时间回来 7 小时(想想:科罗拉多 / MST 等)

请参阅此处以获取更多参考

于 2012-12-11T01:19:19.297 回答