La réponse d'ezpz est presque parfaite, mais j'espère pouvoir en ajouter un peu plus.
Geo a demandé l'heure en millisecondes; cela ressemble à une quantité entière, et je ne prendrais pas le détour à travers la terre à virgule flottante. Ainsi, mon approche serait:
irb(main):038:0> t8 = Time.now
=> Sun Nov 01 15:18:04 +0100 2009
irb(main):039:0> t9 = Time.now
=> Sun Nov 01 15:18:18 +0100 2009
irb(main):040:0> dif = t9 - t8
=> 13.940166
irb(main):041:0> (1000 * dif).to_i
=> 13940
Multipliant par un entier 1000 conserve le nombre fractionnaire parfaitement et peut être un peu plus rapide aussi. Si vous traitez des dates et des heures, vous devrez peut-être utiliser la classe DateTime. Cela fonctionne de manière similaire mais le facteur de conversion est 24 * 3600 * 1000 = .
J'ai trouvé strptime et strftime DateTime fonctions inestimables dans parsing et de formatage des chaînes de date/heure (par exemple à/de journaux). Ce qui est pratique à savoir, c'est:
Les caractères de formatage pour ces fonctions (% H,% M,% S, ...) sont presque les mêmes que pour les fonctions C trouvées sur n'importe quel système Unix/Linux; et
Il y en a quelques autres: En particulier, % L fait des millisecondes!
Ajoutez un to_i et vous l'avez en entier, par exemple: ((finish - start) * 1000.0) .to_i –
'finish.to_f - start.to_f'? – bodacious
'finish - start' donne un point flottant; '.to_f' serait redondant. – ezpz