我有一个数据框,其中包含一个日期列,它采用POSIXCT格式,如下所示
"2019-02-18 00:00:31 IST"
我想要以下格式的日期
"2019-02-18"
但是当我申请
x = as.Date( DATE ,"%Y%m%d")
它给出了以下警告
Warning message:
In as.POSIXlt.POSIXct(x, tz = tz) : unknown timezone '%Y%m%d'
我的输出错误(前一天的错误)
"2019-02-17"
请让我知道发生了什么事。
答案 0 :(得分:0)
一种选择是将POSIXct日期时间转换为一个字符,然后采用前10个字符:
date <- as.POSIXct("2019-02-18 00:00:31", format="%Y-%m-%d %H:%M:%OS", tz="Asia/Kolkata")
date
date.str <- as.character(date)
substr(date.str, 1, 10)
[1] "2019-02-18 00:00:31 IST"
[1] "2019-02-18"
答案 1 :(得分:0)
您也可以使用strftime()
进行此操作:
strftime(d, format="%Y-%m-%d")
[1] "2019-02-18"
使用format=
,您基本上可以选择要提取的内容。即使提取"%Y"
,它也可以工作以提取年份分量。
数据:
d <- as.POSIXlt("2019-02-18 00:00:31 IST")