R转换时间格式130800Z - 日,小时,分钟

时间:2017-10-13 09:02:42

标签: r datetime time

我正在调用一个api,它以130800Z格式返回表示时间,小时和分钟的时间。我想知道是否有一种简单的方法来转换它?

我的方法是将字符串拆分Sys.Date以获取月份和年份,然后将130800Z除以每2个字符并将所有结果合并到2017-10-13 08:00:00

只是想知道是否有办法使用striptime(sprintf(...而不必拆分任何东西?

2 个答案:

答案 0 :(得分:2)

试试这个:

strptime(x = time,format = "%d%H%M",tz = "GMT")
#[1] "2017-10-13 08:00:00 GMT"

答案 1 :(得分:0)

我这样做但必须使用拆分

time = "130950Z"

day = substring(time, seq(1,nchar(time),2), seq(2,nchar(time),2))[1]
hour = substring(time, seq(1,nchar(time),2), seq(2,nchar(time),2))[2]
min = substring(time, seq(1,nchar(time),2), seq(2,nchar(time),2))[3]
year = unlist(str_split(Sys.Date(), "-"))[1]
month = unlist(str_split(Sys.Date(), "-"))[2]

dt = strptime(sprintf("%s-%s-%s %s:%s:%s", year, month, day, hour, min, 0), "%Y-%m-%d %H:%M:%S")

dt = "2017-10-13 09:50:00 GMT"