Comment obtenir l'horodatage UTC en Ruby?
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 d'autre chose, d'une valeur scalaire, par exemple secondes depuis l'époque Unix, 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 à partir de l'objet. Mais cela dépend beaucoup de votre utilisation prévue.
Dire qu '"un horodatage vrai est le nombre de secondes depuis l'époque Unix" manque un peu le point, car c'est une façon de représenter un point dans le temps, mais il a également besoin d'informations supplémentaires pour savoir même que vous avez affaire à une heure et non un nombre. Un Time
objet résout bien ce problème en représentant un point dans le temps et en étant également explicite sur ce qu'il est .
Vous pouvez utiliser:
Time.now.to_i
.la source
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:
la source
/usr/share/ruby/2.0/time.rb
.L'horodatage n'a généralement pas de fuseau horaire.
la source
to_f
sera mieuxsi vous avez besoin d'un horodatage lisible par l'homme (comme l'a fait la migration des rails) ex. " 20190527141340 "
la source
À 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 jeter unto_s.sub('.','')
pour se débarrasser du point décimal, ou effectuer une conversion de type comme ceci:Integer(1e6*Time.now.to_f)
.la source
Integer(1e3*Time.now.to_f)
pour que mon horodatage ruby côté serveur soit le même que le javascript côté clientDate.now()
Time.utc(2010, 05, 17)
la source
time = Time.zone.now()
Cela fonctionnera comme
la source
La bonne façon est de faire une
Time.now.getutc.to_i
pour obtenir la quantité d'horodatage appropriée car le simple affichage de l'entier ne doit pas toujours être identique à l'horodatage utc en raison des différences de fuseau horaire.la source