我正在尝试从某个日志文件结果中计算出一个进程所花费的确切时间。解析日志后,我进入了以下阶段:
my_array = ["Some_xyz_process", "Start", "2018-07-12", "12:59:53,397", "End", "2018-07-12", "12:59:55,913"]
如何从结束日期和时间中减去开始日期和时间,以检索该过程所花费的确切时间?
答案 0 :(得分:1)
您可以合并日期和时间字段,并使用Time.parse
将其转换为时间对象,然后计算秒数差异
Time.parse('2018-07-12 12:59:55,397').to_i - Time.parse('2018-07-12 12:59:53,913').to_i
希望这会有所帮助
答案 1 :(得分:1)
my_array = ["Some_xyz_process",
"Start", "2018-07-12", "12:59:53,397",
"End", "2018-07-12", "12:59:55,913"]
require 'date'
fmt = '%Y-%m-%d%H:%M:%S,%L'
is = my_array.index('Start')
#=> 1
ie = my_array.index('End')
#=> 4
DateTime.strptime(my_array[ie+1] + my_array[ie+2], fmt).to_time -
DateTime.strptime(my_array[is+1] + my_array[is+2], fmt).to_time
#=> 2.516 (seconds)
请参见DateTime#strptime和DateTime#(后面的格式指令)。只要知道日期和时间格式,我总是更喜欢strptime
比parse
。以下是原因的示例:
DateTime.parse 'Theresa May has had a bad week over Brexit'
#=> #<DateTime: 2018-05-01T00:00:00+00:00 ((2458240j,0s,0n),+0s,2299161j)>`.