如何转换时间和日期

时间:2012-11-28 14:18:15

标签: r datetime time

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

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

我有这种格式的10000个数据,所以我不想手动执行此操作。 我会非常感激地提出任何建议。

1 个答案:

答案 0 :(得分: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") })