R - 读取ISO8601格式

时间:2014-07-06 01:24:53

标签: r datetime iso8601

是否有更好的方法来解析ISO8601日期表示而不是我在下面做的?

输入日期时间被格式化为ISO8601标准表示(YYYY-MM-DDThh:mm-hh:mm),即年 - 月 - 日时间 - UTC时间。如图所示,UTC偏移量为-ve,纽约为-ve,华沙为+ 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")

1 个答案:

答案 0 :(得分:0)

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

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