我们假设
x <- "2012-10-07"
我使用
将其转换为POSIXlty <- strptime(x, format = "%Y-%m-%d")
我需要使用
更改格式为%d/%m/%Y
z <- strftime(y, format = "%d/%m/%Y", tz = "GMT")
然而,这会使对象成为一个角色。
class(z)
[1] "character"
以及何时
as.POSIXlt(z, format = "%d/%m/%Y", tz = "GMT")
打印结果是
[1] "2012-10-07 GMT"
(但希望它的格式为%d/%m/%Y
)。
有没有办法将z
转换为POSIXlt
/ POSIXct
对象并保留(打印)订单%d/%m/%Y
?人们甚至应该关注这一点,因为&#34; time&#34;对象知道日,月和年的位置,其他一切只是(漂亮)打印?
答案 0 :(得分:1)
这样的事情:
x <- "2012-10-07"
y <- strptime(x, format = "%Y-%m-%d")
class(y) <- c("EUtime", class(y))
print.EUtime <- function (x, format="%d/%m/%Y %H:%M:%S", ...)
{
max.print <- getOption("max.print", 9999L)
if (max.print < length(x)) {
print(format(x[seq_len(max.print)], format = format, usetz = TRUE), ...)
cat(" [ reached getOption(\"max.print\") -- omitted",
length(x) - max.print, "entries ]\n")
}
else print(format(x, format = format, usetz = TRUE), ...)
invisible(x)
}
y
#[1] "07/10/2012 00:00:00 CEST"
我相信你可以自己修改它,只输出午夜的日期。