使用 strptime 时包括秒数,例如 10-10-2010 00:00:00

Including seconds when using strptime with examples such as 10-10-2010 00:00:00

我已经进行了很好的搜索,确定之前必须回答这个问题,但我似乎找不到任何帮助!

我在一个数据框中有一系列时间,其中一些具有以下格式的时间戳:

Date <- '2018-10-10'
Time <- '00:00:00'

当我使用 strptime 函数时,它 return 只有日期,它删除了 00:00:00,见下文:

datetime <- strptime(paste(Date,Time),
                     format = "%Y-%m-%d %H:%M:%S",
                     tz = 'GMT')

> datetime
[1] "2018-10-10 GMT"

如果它是 Time <- 00:00:01 它将 return

> datetime
[1] "2018-10-10 00:00:01 GMT"

有谁知道确保显示 00:00:00 个实例的输出的方法。期望的输出:

"2018-10-10 00:00:00 GMT"

非常感谢!!

吉姆

当您键入 datetime 并点击 <Enter> 时,R 将使用 a/the 合适的打印方法来显示 datetime。仅仅因为 datetime returns "2018-10-10 GMT" 并不意味着 datetime 忘记了秒数。

为确保 POSIXlt 对象的格式一致,您可以使用 format

format(datetime, "%Y-%m-%d %H:%M:%S", usetz = T)
#[1] "2018-10-10 00:00:00 GMT"

情况 2 类似

Date <- '2018-10-10'
Time <- '00:00:01'
datetime <- strptime(paste(Date,Time), format = "%Y-%m-%d %H:%M:%S", tz = 'GMT')
format(datetime, "%Y-%m-%d %H:%M:%S", usetz = T)
#[1] "2018-10-10 00:00:01 GMT"

示例数据

Date <- '2018-10-10'
Time <- '00:00:00'
datetime <- strptime(paste(Date,Time), format = "%Y-%m-%d %H:%M:%S", tz = 'GMT')