首页 文章

在R中将%H:%M:%S添加为as.POSIXct格式

提问于
浏览
0

这看起来像是微不足道的问题,但我无法使其发挥作用 . 我只需要将午夜转换为POSIXct格式,还可以使用小时,分钟和秒,就像这样:

nextDay_t <- strptime(paste0(as.character(Sys.Date() + 1)," 00:00:00"), format = "%Y-%m-%d %H:%M:%S")
nextDay_t <- format(nextDay_t, "%Y-%m-%d %H:%M:%S")
nextDay_t <- as.POSIXct(nextDay_t, format='%Y-%m-%d %H:%M:%S', tz="EST")

但仍然只有“2018-12-11 EST”而不是“2018-12-11 00:00:00 EST” . 我的代码中是否有任何遗漏?

2 回答

  • -1

    你可以使用库(lubridate)

    像下面将提供小时,分钟,秒:

    nextDay_t <- strptime(paste0(as.character(Sys.Date() + 1)," 00:00:00"), format = "%Y-%m-%d %H:%M:%S")
    
    lubridate::as_datetime(nextDay_t)
    
    #"2018-12-10 18:30:00 UTC"
    
  • 1

    您的代码似乎在正确的轨道上 . 在调用 strptime 之后,小时/分钟/秒组件实际上仍然存在 . 在检查对象时,默认情况下它们不会自动显示 .

    您可以尝试以下调用 format ,其中包括这些组件以及时区( %Z ):

    nextDay_t <- strptime(paste0(as.character(Sys.Date() + 1)," 00:00:00"), format = "%Y-%m-%d %H:%M:%S")
    nextDay_t
    format(nextDay_t,"%Y/%m/%d %H:%M:%S %Z")  # include hour/minute/second and time zone
    
    [1] "2018-12-11 CET"
    [1] "2018/12/11 00:00:00 CET"
    

相关问题