将 posixct 时间格式转换为 00:00:00

don*_*ati 6 r

我想将数据帧的以下列转换为 00:00:00 (HH:MM:SS) 和class of the output should be the "POSIXct" format.

这不是包含午夜的日期时间的 as.POSIXct的精确副本,因为这些时间不包括午夜。

这里是数据框的列。

> gg
[1] "2018-01-16 10:29:00 IST" "2018-01-16 10:29:00 IST"
[3] "2018-01-16 10:29:00 IST" "2018-01-16 10:29:00 IST"
[5] "2018-01-16 10:29:00 IST" "2018-01-16 10:29:00 IST"
Run Code Online (Sandbox Code Playgroud)

我厌倦了以下代码,它不能解决我的问题

  paste(as.Date(gg, format="%Y-%m-%d"),"00:00:00")

[1] "2018-01-16 00:00:00" "2018-01-16 00:00:00" "2018-01-16 00:00:00"
[4] "2018-01-16 00:00:00" "2018-01-16 00:00:00" "2018-01-16 00:00:00"
Run Code Online (Sandbox Code Playgroud)

我需要输出的类应该在"POSIXct" "POSIXt"

所以我正在应用as.POSIXct

这里缺少00:00:00

as.POSIXct(paste(as.Date(gg, format="%Y-%m-%d"),"00:00:00"))

[1] "2018-01-16 IST" "2018-01-16 IST" "2018-01-16 IST" "2018-01-16 IST"
[5] "2018-01-16 IST" "2018-01-16 IST"
Run Code Online (Sandbox Code Playgroud)

所需格式为

[1] "2018-01-16 00:00:00 IST" "2018-01-16 00:00:00 IST"
[3] "2018-01-16 00:00:00 IST" "2018-01-16 00:00:00 IST"
[5] "2018-01-16 00:00:00 IST" "2018-01-16 00:00:00 IST"
Run Code Online (Sandbox Code Playgroud)

班级应该是"POSIXct" "POSIXt"

数据集

> dput(gg)
structure(c(1516078740, 1516078740, 1516078740, 1516078740, 1516078740, 
1516078740), class = c("POSIXct", "POSIXt"), tzone = "")
Run Code Online (Sandbox Code Playgroud)

谢谢。

De *_*ica 6

POSIX.ct有一个round方法

round(gg, units = "days")
Run Code Online (Sandbox Code Playgroud)

让它显示 00:00:00

format(round(gg, units = "day"), '%Y-%m-%d %M:%H:%S')
Run Code Online (Sandbox Code Playgroud)

Round 的优点是独立于语言环境。