如何将此格式的日期转换为R中的日期类?

时间:2012-08-28 20:51:04

标签: r date

我有一个包含日期的数据的电子表格,如下所示:

   Mon Jul 16 15:20:22 +0000 2012

有没有办法在不使用正则表达式的情况下将这些转换为R日期(最好是PST),还是没有办法吗?我很感激有效地进行这种转换的想法。

3 个答案:

答案 0 :(得分:8)

当然,只需使用strptime()来解析字符串中的时间:

R> strptime("Mon Jul 16 15:20:22 +0000 2012", 
+           format="%a %b %d %H:%M:%S %z %Y")
[1] "2012-07-16 10:20:22 CDT"
R> 

使用我的本地时区(CDT)。如果您的是Pacific,则可以在

中明确设置
R> strptime("Mon Jul 16 15:20:22 +0000 2012", 
+           format="%a %b %d %H:%M:%S %z %Y", tz="America/Los_Angeles")
[1] "2012-07-16 08:20:22 PDT"
R> 

与UTC的7小时增量相符合。

答案 1 :(得分:6)

?strptime的示例部分中,几乎有一个如何执行此操作的逐字示例:

 # ?strptime example:
 ## An RFC 822 header (Eastern Canada, during DST)
 strptime("Tue, 23 Mar 2010 14:36:38 -0400",  "%a, %d %b %Y %H:%M:%S %z")
 # your data...
 strptime("Mon Jul 16 15:20:22 +0000 2012", "%a %b %d %H:%M:%S %z %Y")

答案 2 :(得分:0)

也可以使用lubridate

中的tidyverse包来完成此操作
library(lubridate)
parse_date_time("Mon Jul 16 15:20:22 +0000 2012", orders = "amdHMSzY")

这是我更喜欢的。