R lubridate包日期时间创建忽略了午夜的时间

时间:2018-07-05 15:00:10

标签: r datetime lubridate

我正在尝试使用lubridate包创建日期时间,并且尝试了以下值:

library(lubridate)
ymd_hms("2017-07-02 23:00:00")
[1] "2017-07-02 23:00:00 UTC"
ymd_hms("2017-07-02 00:00:00")
[1] "2017-07-02 UTC"

似乎您在午夜00:00:00键入时间时,ymd_hms()方法将忽略时间值,结果将成为日期。有什么办法可以在结果中显示00:00:00? 非常感谢!

2 个答案:

答案 0 :(得分:2)

打印方式不同,但是对象仍然是POSIXct

library(lubridate)
#> 
#> Attachement du package : 'lubridate'
#> The following object is masked from 'package:base':
#> 
#>     date
library(magrittr)

ymd_hms("2017-07-02 23:00:00")%>% 
  class()
#> [1] "POSIXct" "POSIXt"

ymd_hms("2017-07-02 00:00:00") %>% 
  class()
#> [1] "POSIXct" "POSIXt"

reprex package(v0.2.0)于2018-07-05创建。

devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.4.4 (2018-03-15)
#>  system   x86_64, darwin15.6.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  fr_FR.UTF-8                 
#>  tz       Europe/Paris                
#>  date     2018-07-05
#> Packages -----------------------------------------------------------------
#>  package   * version date       source                          
#>  backports   1.1.2   2017-12-13 CRAN (R 3.4.3)                  
#>  base      * 3.4.4   2018-03-15 local                           
#>  compiler    3.4.4   2018-03-15 local                           
#>  datasets  * 3.4.4   2018-03-15 local                           
#>  devtools    1.13.6  2018-06-27 CRAN (R 3.4.4)                  
#>  digest      0.6.15  2018-01-28 CRAN (R 3.4.3)                  
#>  evaluate    0.10.1  2017-06-24 CRAN (R 3.4.1)                  
#>  graphics  * 3.4.4   2018-03-15 local                           
#>  grDevices * 3.4.4   2018-03-15 local                           
#>  htmltools   0.3.6   2017-04-28 CRAN (R 3.4.0)                  
#>  knitr       1.20    2018-02-20 CRAN (R 3.4.3)                  
#>  lubridate * 1.7.4   2018-04-11 CRAN (R 3.4.4)                  
#>  magrittr  * 1.5     2014-11-22 CRAN (R 3.4.0)                  
#>  memoise     1.1.0   2017-04-21 CRAN (R 3.4.0)                  
#>  methods   * 3.4.4   2018-03-15 local                           
#>  Rcpp        0.12.17 2018-05-18 CRAN (R 3.4.4)                  
#>  rmarkdown   1.10    2018-06-11 CRAN (R 3.4.4)                  
#>  rprojroot   1.3-2   2018-01-03 CRAN (R 3.4.3)                  
#>  stats     * 3.4.4   2018-03-15 local                           
#>  stringi     1.2.3   2018-06-12 CRAN (R 3.4.4)                  
#>  stringr     1.3.1   2018-05-10 CRAN (R 3.4.4)                  
#>  tools       3.4.4   2018-03-15 local                           
#>  utils     * 3.4.4   2018-03-15 local                           
#>  withr       2.1.2   2018-06-01 Github (jimhester/withr@70d6321)
#>  yaml        2.1.19  2018-05-01 CRAN (R 3.4.4)

答案 1 :(得分:1)

因此,在Google搜索并尝试以下错误后,我对这个问题有了自己的答案:

mydates <- format(as.POSIXct("2011-01-01 00:00:00", tz = "UTC"), "%m-%d-%Y %H:%M:%S")
mydates
[1] "01-01-2011 00:00:00"
format(as.POSIXct("2011-01-01 00:00:00", tz = "UTC"), "%m-%d-%Y %H:%M:%S")
[1] "01-01-2011 00:00:00"

似乎可以将R Base as.POSIXct与格式参数一起使用。