2012-11-28 39 views
3

我有一个问题。如何将日期和时间的格式20110711201023转换为小时数。这是我用于图像分析的软件的输出,我无法改变它。定义起始日期和时间非常重要。 格式:2011年,07月,11日,20小时,10分钟,23秒。 例子:如何转换时间和日期

Starting Data and Time - 20110709201023, 
First Data and Time - 20110711214020 
Result = 49,5h. 

我有这种格式10000点的数据,所以我不想手动完成。 我会非常感激任何建议。

回答

3

最好是使用strptime首先使它成为一个真正的R个时间对象:

time_obj = strptime("20110711201023", format = "%Y%m%d%H%M%S") 

如果你这样做有开始和结束日期都,你可以简单地说:

end_time - start_time 

以秒为单位获得差异,可轻松转换为小时数。为了将这些时间字符串的完整列表,简单地做:

time_vector = strptime(dat$time_string, format = "%Y%m%d%H%M%S") 

其中dat与数据的data.frame,并time_string包含时间的字符串列。请注意,strptime也适用于矢量(它是矢量化的)。您也可以使DAT新的时间向量部分:

dat$time = strptime(dat$time_string, format = "%Y%m%d%H%M%S") 

或更优雅(至少如果你恨$不亚于我:)):

dat = within(dat, { time = strptime(dat$time_string, format = "%Y%m%d%H%M%S") }) 
+2

为了避免讨厌的惊喜,我建议您在进行日期时间转换时始终指定时区。 'strptime'有一个参数'tz',例如,你可以使用'strptime(“20110711201023”,format =“%Y%m%d%H%M%S”,tz =“GMT”)''。 – Roland