【问题标题】:R - Reading ISO8601 formatR - 读取 ISO8601 格式
【发布时间】:2014-07-06 01:24:52
【问题描述】:

有没有比我做的更好的方法来解析 ISO8601 日期表示?

输入日期时间已格式化为 ISO8601 标准表示 (YYYY-MM-DDThh:mm-hh:mm),即年-月-日Tlocaltime-UTCoffset。例如,对于纽约,UTC 偏移量为 -ve,对于华沙,UTC 偏移量为 +ve。我使用如下两行代码将其读入 R:

首先,我从 UTC 偏移量中删除了“:”(R 期望 UTC 偏移量的格式为 nnnn):

    dataset$nocolon<- paste(substr(dataset$timestampISO8601,1,22),substr(dataset$timestampISO8601,24,25),sep="")

然后,我解析时间戳以获取 UTC 时间:

    dataset$datetimeUTC <- strptime(dataset$nocolon, format="%Y-%m-%dT%H:%M:%S%z", tz="UTC")

【问题讨论】:

  • 以什么方式更好?你的解决方案有什么问题?
  • 从您的输入中添加一些示例日期,否则很少有人会费心构建测试用例。
  • 这个问题应该被关闭。见stackoverflow.com/questions/24592178/…

标签: r datetime iso8601


【解决方案1】:

我认为这是pandas本地时间的默认输出格式,所以应该经常遇到。我将您的解决方案转换为单行:

v = "2009-01-27 20:02:22+01:00"
as.POSIXct(gsub(":","",v),  format = "%Y-%m-%d %H%M%S%z")

【讨论】:

    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2021-12-06
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多