2017-10-13 85 views
0

我打电话的时间格式为130800Z,它表示时间,小时和分钟。我想知道是否有一种简单的方法来转换它?R转换时间格式130800Z - 天,小时,分钟

我的做法是字符串分割Sys.Date获得年份和月份,然后分裂每隔2个字符130800Z结果全部合并到2017-10-13 08:00:00

只是不知道是否有使用striptime(sprintf(...无需拆分的方式什么?

+0

在'130800Z',是一年中的哪一天? – akrun

+0

没有一个月的日子,因此使用'Sys.date'作为其他数据 - api每小时更新一次,所以没有错误的月/年的问题 – Olivia

+0

日月,小时,分钟(UTC) – Olivia

回答

2

试试这个:

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

甚至比我预期的更容易哈哈 – Olivia

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"

相关问题