首页 > 解决方案 > 如何在不添加日期的情况下将字符转换为具有小数秒的时间?

问题描述

有没有办法将字符串转换为保留小数秒但不向数据添加日期的时间?

背景:我在一夜之间保存的数据(从 22:00 开始,到 06:00 结束)记录的是时间,而不是日期。我希望能够在时间上执行类似“if”语句的操作(即如果(时间 < 午夜)日期 = 昨天 .... 否则日期 = 今天)

我不想使用 strptime 之类的东西,因为 strptime 会将今天的日期添加到数据中:

> options(digits.secs=3)
> strptime("22:59:54.807", format="%H:%M:%OS")
[1] "2019-01-20 22:59:54.807 AEDT"

当我使用 chron 包中的时间时,会删除小数秒:

> options(digits.secs=3)
> times("22:59:54.807")
[1] 22:59:55

标签: r

解决方案


使用base::strftime(),您可以获得所需时间的字符到您想要的任何秒数。下面我将当前时间保存为单位 1/1000 秒,使用“OS”后面的数字“4”:

使用当前系统时间:

time = Sys.time() str(time)

POSIXct[1:1],格式:“2019-01-19 15:41:28.185”

newTime = strftime(Sys.time(), format="%H:%M:%OS4") str(newTime)

chr "15:41:28.1851"

newTime

[1] “15:41:28.1851”


推荐阅读