web-dev-qa-db-fra.com

Comment obtenir le timestamp UTC en Ruby?

Comment obtenir le timestamp UTC en Ruby?

127
Mohit Jain
time = Time.now.getutc

Justification: À mes yeux, un horodatage est exactement cela: un point dans le temps. Cela peut être représenté avec précision avec un objet. Si vous avez besoin de quelque chose d'autre, une valeur scalaire, par exemple. secondes depuis l’époque Unix, des intervalles de 100 ns depuis 1601 ou peut-être une chaîne à des fins d’affichage ou de stockage de l’horodatage dans une base de données, vous pouvez facilement l’obtenir de l’objet. Mais cela dépend beaucoup de votre utilisation prévue.

Dire qu'un "horodatage vrai est le nombre de secondes depuis que l'époque Unix" manque un peu le point, car c'est n moyen de représenter un point dans le temps, mais il a aussi besoin d'informations supplémentaires sachez que vous avez affaire à une heure et non à un nombre. Un objet Time résout bien ce problème en représentant un point dans le temps et en expliquant ce que c'est.

107
Joey

Vous pouvez utiliser: Time.now.to_i.

234
manzhikov

Le formatage par défaut n'est pas très utile, à mon avis. Je préfère ISO8601 car il est triable, relativement compact et largement reconnu:

>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"
44
Tim Sylvester

Généralement, l'horodatage n'a pas de fuseau horaire.

% irb
> Time.now.to_i == Time.now.getutc.to_i
=> true
14
Yuki Matsukura

À quoi sert un horodatage avec sa granularité donnée en secondes? Je trouve cela beaucoup plus pratique de travailler avec Time.now.to_f. Heck, vous pouvez même lancer une to_s.sub('.','') pour supprimer le point décimal, ou effectuer un transtypage de caractères comme ceci: Integer(1e6*Time.now.to_f).

7
chava

si vous avez besoin d'un horodatage lisible par l'homme (comme Rails la migration a) ex. "2019052714134"

Time.now.utc.to_formatted_s(:number)  # using Rails

Time.now.utc.strftime("%Y%m%d%H%M%S") # using Ruby
2
Kate Kasinskaya

Time.utc(2010, 05, 17)

2
August Lilleaas