我有一个充满数据的电子表格,其日期如下所示:
Mon Jul 16 15:20:22 +0000 2012
有没有办法在不使用正则表达式的情况下将这些转换为 R 日期(最好是 PST),还是没有其他方法?我很感激有关有效进行此转换的想法。
当然,只需用于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 小时的增量看起来是正确的。
在“示例”部分几乎有一个逐字逐句的示例说明如何执行此操作?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")
这也可以通过lubridate
package in来完成tidyverse
library(lubridate)
parse_date_time("Mon Jul 16 15:20:22 +0000 2012", orders = "amdHMSzY")
这是我更喜欢的。