【问题标题】:remove milliseconds from Datetime in TZ format以 TZ 格式从 Datetime 中删除毫秒
【发布时间】:2021-05-25 07:55:23
【问题描述】:

我有一个日期时间列,其中包含 TZ 格式的日期时间,例如:

时间戳 = 2021-04-01T04:37:16.528Z

我必须转换/截断毫秒部分,以便日期时间为:


as.POSIXct(timestamp, format="%Y-%m-%dT%H:%M:%OSZ", tz="GMT")

2021-04-01 04:37:16

但是当我按 DateTime 列进行聚合时,它仍然使用毫秒格式的时间戳,并且聚合没有正确实现。

我想截断不只是将 DateTime 打印到秒。

【问题讨论】:

    标签: r datetime time milliseconds


    【解决方案1】:

    您可以从字符串中删除毫秒部分,然后进行转换:

    as.POSIXct(gsub("\\.[0-9]+Z", "", timestamp), 
               format="%Y-%m-%dT%H:%M:%S", tz="GMT")
    

    【讨论】:

    • 为什么要删除它们而不是向上或向下舍入到秒?
    • 减少毫秒数不会改变秒数,但会向上取整(例如,12:12:12.899 将四舍五入为 12:12:13)。在这种情况下聚合会出错
    猜你喜欢
    • 2021-05-26
    • 2016-03-15
    • 2017-08-21
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多