HTML5 replaceState - это ответ, как уже упоминалось Vivart и geo1701. Однако он не поддерживается во всех браузерах / версиях. History.js обертывает функции состояния HTML5 и предоставляет дополнительную поддержку браузерам HTML4.
Как заметил @Richard Scriven, вы не должны использовать as.Date
, потому что это не класс datetime . Вот несколько разных способов:
DateTime <- "2007-02-01 00:00:00"
DateTime2 <- "02/01/2007 00:06:10"
## default format Y-m-d H:M:S
> as.POSIXct(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
> as.POSIXlt(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
##
## specify format m/d/Y H:M:S
> as.POSIXct(DateTime2,format="%m/%d/%Y %H:%M:%S",tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"
> as.POSIXlt(DateTime2,format="%m/%d/%Y %H:%M:%S",tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"
##
## using lubridate
library(lubridate)
> ymd_hms(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
> mdy_hms(DateTime2,tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"
Если у вас есть формат %Y-%m-%d %H:%M:%S
, вам не нужно указывать format=
для as.POSIXct
и as.POSIXlt
. В других случаях, например %m/%d/%Y %H:%M:%S
, вы обычно должны явно указывать формат.
Если вы хотите специально преобразовать «2007-02-01 00:00:00» в объект класса даты, это то, что вам нужно сделать. Это основано на этом вопросе и ответе
print.POSIXct <- function(x,...)print(format(x,"%Y-%m-%d %H:%M:%S"))
x <- "2007-02-01 00:00:00"
x <- as.POSIXct(x,tz=Sys.timezone())
x
2007-02-01 EST
может быть не тот, которого хочет OP, так как он не содержит00:00:00
в результатах. – jazzurro 21 September 2014 в 16:3200:00:00
и другое datetime с ненулевым HMS вdata.frame
и т. Д., Он печатает нули - i.edata.frame(x=c(as.POSIXct(DateTime,tz=Sys.timezone()),as.POSIXct(DateTime,tz=Sys.timezone())+1))
(используя объекты выше); Я посмотрю, есть ли способ сделать это с помощью отдельных временных меток. – nrussell 21 September 2014 в 16:4400:00:00
) - и она по-прежнему сохраняет информацию (она просто не печатает ее). Он показывает нули, если вы просматриваете такую временную метку с другими не-полночными временами, как в моем комментарии выше, иначе вы должны взломать форматирование, чтобы обойти это поведение, например, в решении @ jazzurro. – nrussell 21 September 2014 в 17:04lubridate
попробуйтеdt <- as.POSIXct("2007-02-01 00:00:00"); hour(dt) <- hour(dt)+1; dt; hour(dt) <- hour(dt)-1; dt
. Полночь, кажется, никогда не появляется – Rich Scriven 21 September 2014 в 18:02