【问题标题】:Convert numeric time in milliseconds to datetime with seconds with decimal value以毫秒为单位的数字时间转换为带有十进制值的秒数的日期时间
【发布时间】:2021-11-16 16:58:45
【问题描述】:

如何将以毫秒为单位的数字时间转换为datetime 格式,带十进制值的秒数(最好使用lubridate

time = 1633708877772

【问题讨论】:

  • 期望值是多少?你需要as_datetime(time/1000)
  • as_datetime(time/1000) = "2021-10-08 16:01:17 UTC" 我预计秒数最多为小数点后三位。
  • 您可以格式化以显示毫秒,即strftime(as_datetime(time/1000), '%Y-%m-%d %H:%M:%OS3') [1] "2021-10-08 11:01:17.772"
  • 谢谢,应该可以。有没有不使用 lubridate 的简单解决方案
  • 我用as.POSIXctbase R 发布了一个解决方案。谢谢

标签: r datetime lubridate


【解决方案1】:

使用lubridate,使用as_datetime

library(lubridate)
as_datetime(time/1000)
[1] "2021-10-08 16:01:17 UTC"

请注意,毫秒不是控制台中的printed。如果我们需要打印,则使用strftimeformat 格式化(但它不再是日期时间对象)

strftime(as_datetime(time/1000), '%Y-%m-%d %H:%M:%OS3') 
#[1] "2021-10-08 11:01:17.772"

或者不使用任何包,直接在as.POSIXct中指定

as.POSIXct(time/1000, origin = '1970-01-01')
[1] "2021-10-08 11:01:17 CDT"

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 2014-03-14
    • 2021-09-29
    • 2016-04-25
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多