【问题标题】:lubridate package assignments involving thousandths of a second润滑涉及千分之一秒的包分配
【发布时间】:2018-01-09 22:29:59
【问题描述】:

为什么 R 的 lubridate 包中的 ymd_hms 函数会为 ymd_hms('2018-01-09T15:43:44.844Z') 返回“2018-01-09 15:43:44.843 UTC”?

我天真地期待“2018-01-09 15:43:44.844 UTC”。

ymd_hms('2018-01-09T15:43:44.822Z') 返回“2018-01-09 15:43:44.822 UTC”。

由于这是 GMT/UTC,我不认为夏令时是一个因素,truncated = 选项的不同值似乎没有什么区别。

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    来自 ymd_hms 文档:

    注意:ymd 系列函数基于 strptime()

    here 所述,问题似乎在于 strptime 如何截断而不是舍入几分之一秒。玩转options(digits.secs = n),看看它如何处理各种小数位数。

    【讨论】:

      【解决方案2】:

      我宁愿使用:

      format(strptime("2018-01-09T15:43:44.844Z", "%Y-%m-%dT%H:%M:%OS", tz = "EST"), format="%Y-%m-%d %H:%M:%OS3 %Z", tz = "EST") 
      
      [1] "2018-01-09 15:43:44.844 EST"
      

      请注意,毫秒是使用参数%OS 以格式传递的

      【讨论】:

        猜你喜欢
        • 2013-07-06
        • 1970-01-01
        • 2019-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-10
        相关资源
        最近更新 更多