R 处理包含星期几的日期时间字符串

R 处理包含星期几的日期时间字符串,r,regex,datetime,R,Regex,Datetime,我有一个日期时间字符串,该字符串包含星期几和一些元数据 d <- "Fri, 14 Jul 2000 06:59:00 -0700 (PDT)" 假设字符串的格式在数据中保持不变: time = trimws(unlist(strsplit(d, "[,-]"))[2]) #[1] "14 Jul 2000 06:59:00" tz = unlist(strsplit(d, "[,-]"))[3] tz = gsub("[^A-Z]", "", tz) #[1] "PDT" >

我有一个日期时间字符串,该字符串包含星期几和一些元数据

d <- "Fri, 14 Jul 2000 06:59:00 -0700 (PDT)"

假设字符串的格式在数据中保持不变:

time = trimws(unlist(strsplit(d, "[,-]"))[2])
#[1] "14 Jul 2000 06:59:00"
tz = unlist(strsplit(d, "[,-]"))[3]
tz = gsub("[^A-Z]", "", tz)
#[1] "PDT"

> as.Date(time, format = "%d %b %Y")
[1] "2000-07-14"
> as.POSIXct(time, format = "%d %b %Y %H:%M:%S") #specify th etimezone with tz
[1] "2000-07-14 06:59:00 IST"

假设字符串的格式在数据中保持不变:

time = trimws(unlist(strsplit(d, "[,-]"))[2])
#[1] "14 Jul 2000 06:59:00"
tz = unlist(strsplit(d, "[,-]"))[3]
tz = gsub("[^A-Z]", "", tz)
#[1] "PDT"

> as.Date(time, format = "%d %b %Y")
[1] "2000-07-14"
> as.POSIXct(time, format = "%d %b %Y %H:%M:%S") #specify th etimezone with tz
[1] "2000-07-14 06:59:00 IST"
我写了一篇文章来帮助(除其他外)处理这些愚蠢的格式字符串——因此它试探性地尝试了其中的一些字符串(并专注于正常的字符串)

您在这里的输入符合以下条件(事实上是一种非常常见的形式):

我们目前不尝试在最后捕获时区偏移信息,因此您必须在事后处理。显示在CDT中,这是我的本地时区

还有更多关于的信息。

我写的是为了帮助(除其他外)处理这些愚蠢的格式字符串——因此它试探性地尝试了其中的一些字符串(重点是正常的)

您在这里的输入符合以下条件(事实上是一种非常常见的形式):

我们目前不尝试在最后捕获时区偏移信息,因此您必须在事后处理。显示在CDT中,这是我的本地时区


还有一些关于的详细信息。

这个字符串的格式是否与您在这里分享的一致?这是
dd谢谢@aichao,这很有效。投了赞成票。为什么
as.POSIXct(d,format=“%a,%d%b%Y%t%z”)
不起作用?接近但不完全有效。如果我省略了尾随的
%z
,对我来说是有效的。这个字符串的格式会像你在这里分享的那样一致吗?这个
dd谢谢@aichao,行得通。投了赞成票。为什么
as.POSIXct(d,format=“%a,%d%b%Y%t%z”)
不起作用?接近但不完全有效。如果我省略了尾随的
%z
,则对我有效。
time = trimws(unlist(strsplit(d, "[,-]"))[2])
#[1] "14 Jul 2000 06:59:00"
tz = unlist(strsplit(d, "[,-]"))[3]
tz = gsub("[^A-Z]", "", tz)
#[1] "PDT"

> as.Date(time, format = "%d %b %Y")
[1] "2000-07-14"
> as.POSIXct(time, format = "%d %b %Y %H:%M:%S") #specify th etimezone with tz
[1] "2000-07-14 06:59:00 IST"
R> anytime("Fri, 14 Jul 2000 06:59:00 -0700 (PDT)")
[1] "2000-07-14 06:59:00 CDT"
R>