2

我有一个充满数据的电子表格,其日期如下所示:

   Mon Jul 16 15:20:22 +0000 2012

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

4

3 回答 3

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)。如果你的是太平洋,你可以明确地设置它

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 小时的增量看起来是正确的。

于 2012-08-28T21:00:36.763 回答
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")
于 2012-08-28T21:00:21.523 回答
0

这也可以通过lubridatepackage in来完成tidyverse

library(lubridate)
parse_date_time("Mon Jul 16 15:20:22 +0000 2012", orders = "amdHMSzY")

这是我更喜欢的。

于 2018-06-09T00:31:03.427 回答