[RUBY] Quelle classe doit être utilisée pour obtenir la date et l'heure dans l'application Rails (Time, DateTime, TimeWithZone)

Quelle classe doit être utilisée pour obtenir la date et l'heure

Dans Rails, sauf si vous avez une raison spécifique Il est préférable de s'unifier avec la classe TimeWithZone plutôt qu'avec la classe Time et la classe DateTime.

À propos du fuseau horaire

Il y a trois endroits pour régler le fuseau horaire.

--Système

Utilisez Time.zone.name pour voir quel fuseau horaire est défini dans application.rb.

# application.rb
config.time_zone = 'Tokyo'

Time.zone.name
=> "Tokyo"

Quel fuseau horaire sera utilisé

Pour compliquer les choses, le fuseau horaire utilisé dépend de la classe et des méthodes qui lui sont associées. Par exemple Time.now en utilisant la méthode now associée à la classe Time utilise le fuseau horaire de la variable d'environnement Time.current en utilisant la méthode current associée à la classe Time utilise le fuseau horaire de application.rb.

#La variable d'environnement est utilisée et la classe devient Time
[1] pry(main)> Time.now
=> 2020-07-31 19:39:18 +0900
[2] pry(main)> Time.now.class
=> Time

#application.rb est utilisé et la classe devient TimeWithZone
[3] pry(main)> Time.current
=> Fri, 31 Jul 2020 19:39:35 JST +09:00
[4] pry(main)> Time.current.class
=> ActiveSupport::TimeWithZone

Utilisez Time.current ou Time.zone.now pour obtenir la date et l'heure actuelles

Il existe les méthodes suivantes pour obtenir la date et l'heure actuelles.

  1. Time.now (utilisez le fuseau horaire de la variable d'environnement)
  2. DateTime.now (en utilisant le fuseau horaire de la variable d'environnement)
  3. Time.current (utilisez le fuseau horaire de application.rb)
  4. Time.zone.now (utilisez le fuseau horaire de application.rb)

En conclusion, il est préférable d'utiliser la classe TimeWithZone 3 ou 4 (car si vous voulez en faire une application internationale, vous pouvez la gérer de différentes manières).

#Le fuseau horaire de la variable d'environnement est utilisé
[1] pry(main)> Time.now
=> 2020-07-31 19:43:14 +0900 #Classe de temps
[2] pry(main)> DateTime.now
=> Fri, 31 Jul 2020 19:43:21 +0900 #Classe DateTime

# application.le fuseau horaire rb est utilisé
[3] pry(main)> Time.current
=> Fri, 31 Jul 2020 19:43:26 JST +09:00 #ActiveSupport::Classe TimeWithZone
[4] pry(main)> Time.zone.now
=> Fri, 31 Jul 2020 19:43:32 JST +09:00 #ActiveSupport::Classe TimeWithZone

Article de référence

J'ai fait référence à l'article suivant. L'article l'explique en détail. https://qiita.com/jnchito/items/cae89ee43c30f5d6fa2c

Recommended Posts

Quelle classe doit être utilisée pour obtenir la date et l'heure dans l'application Rails (Time, DateTime, TimeWithZone)
Changer la date et l'heure en notation japonaise dans Rails
[Java] Utilisez ResolverStyle.LENIENT pour bien gérer la date et l'heure
Obtenez la date et l'heure actuelles en spécifiant le fuseau horaire dans Thymeleaf
Comment obtenir la date avec Java
Utilisez l'application Web Timecop in Rails pour déplacer le temps dans le navigateur
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
[Java Spring MVC] Je souhaite utiliser DI dans ma propre classe
J'ai essayé d'organiser la session en Rails
Unifier le fuseau horaire de l'application Rails à l'heure japonaise
Je veux obtenir récursivement la superclasse et l'interface d'une certaine classe
Je veux obtenir la valeur en Ruby
[Java] Comment utiliser la classe Calendar et la classe Date
Je souhaite utiliser PowerMock dans une classe qui combine des tests paramétrés et des tests ordinaires
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Je veux utiliser une petite icône dans Rails
[Rails] Je ne sais pas comment utiliser le modèle ...
Que dois-je utiliser pour le framework de test [Rails]
[Rails] Précautions lors de la comparaison de la date et de l'heure avec DateTime
Traitement de la date et de l'heure en Ruby. Utilisez correctement la date et l'heure.
[Rails] Validez l'heure de début (type datetime) et l'heure de fin
Comment obtenir le nom d'une classe / méthode exécutée en Java
Qu'est-ce que la classe LocalDateTime? [Java débutant] -Date et classe d'heure-
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
[Rails] Obtenez access_token au moment de l'authentification Twitter avec Sorcery et enregistrez-le dans la base de données
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
[Spring Boot] Je veux ajouter mon propre fichier de propriétés et obtenir la valeur avec env.getProperty ().
Si vous souhaitez simuler une méthode dans RSpec, vous devez utiliser la méthode allow pour mock et la méthode singleton.
[Java] Obtenez des informations sur la date 10 jours plus tard en utilisant la milliseconde dans la classe Date
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
Tri des données Décroissant, croissant / Rails
Points à retenir et concepts dans le didacticiel Ruby on Rails
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
Comment utiliser la classe wrapper
[Ruby] Informations de base sur les classes Date, Heure et DateHeure
J'ai résumé les points à noter lors de l'utilisation combinée des ressources et des ressources
Comment obtenir la date actuelle sous forme de chaîne au format aaaaMMjj
(Pour les débutants) [Rails] Technologie de gain de temps! Comment installer et utiliser Slim
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
Comment créer votre propre annotation en Java et obtenir la valeur
Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2
Comment intégrer et afficher des vidéos youtube dans Rails (vous pouvez également obtenir l'URL saisie en modifiant)