将分隔符添加到dateTime

时间:2015-10-28 08:55:37

标签: r datetime weekday

我有一个日期为字符的向量

x <- "2015-02-01 09:05:23"

我想将其转换为dateTime对象

x <- as.POSIXct(strptime(x, "%Y-%m-%d %H:%M:%S"), tz = "GMT")

然后&#34; T&#34;作为日期和时间之间的分隔符(参见XML Schema)以获得以下输出

"2015-02-01T09:05:23"

我如何获得&#34; T&#34;分隔成字符串?

3 个答案:

答案 0 :(得分:5)

您可以使用format函数来获取角色对象。

x <- "2015-02-01 09:05:23"  
format(as.POSIXct(x, "GMT"), "%FT%T")
#[1] "2015-02-01T09:05:23"

答案 1 :(得分:1)

x <- "2015-02-01 09:05:23"
d <- as.POSIXct(strptime(x, "%Y-%m-%d %H:%M:%S"), tz = "GMT")
w <- substr(weekdays(d),1,1) # 1,1 selects the first letter of the day

y <- paste0(strsplit(as.character(d)," ")[[1]][1],w,strsplit(as.character(d)," ")[[1]][2])

y
[1] "2015-02-01S09:05:23"

如果你只想写一个T

paste0(strsplit(as.character(d)," ")[[1]][1],'T',strsplit(as.character(d)," ")[[1]][2])

[1] "2015-02-01T09:05:23"

答案 2 :(得分:1)

在这种情况下,您可以使用gsub

替换空格
x <- "2015-02-01 09:05:23"
x <- as.POSIXct(strptime(x, "%Y-%m-%d %H:%M:%S"), tz = "GMT")
gsub(" ", "T", x)

#[1] "2015-02-01T09:05:23"

根据@Avinash Raj的评论仅使用sub就足够了。

sub(" ", "T", x)
#[1] "2015-02-01T09:05:23"