[RUBY] Welche Klasse sollte verwendet werden, um Datum und Uhrzeit in der Rails-App abzurufen (Time, DateTime, TimeWithZone)?

Welche Klasse sollte verwendet werden, um Datum und Uhrzeit zu erhalten?

In Rails, es sei denn, Sie haben einen bestimmten Grund Es ist besser, mit der TimeWithZone-Klasse als mit der Time-Klasse und der DateTime-Klasse zu vereinheitlichen.

Über die Zeitzone

Es gibt drei Orte, an denen Sie die Zeitzone einstellen können.

--System --Umgebungsvariable ENV ['TZ']

Verwenden Sie Time.zone.name, um zu sehen, welche Zeitzone in application.rb festgelegt ist.

# application.rb
config.time_zone = 'Tokyo'

Time.zone.name
=> "Tokyo"

Welche Zeitzone wird verwendet?

Um die Sache zu verkomplizieren, hängt die verwendete Zeitzone von der Klasse und den damit verbundenen Methoden ab. Zum Beispiel Time.now mit der Methode now in Bezug auf die Zeitklasse verwendet die Zeitzone der Umgebungsvariablen Time.current mit der der Zeitklasse zugeordneten Methode current verwendet die Zeitzone von application.rb.

#Die Umgebungsvariable wird verwendet und die Klasse wird zur Zeit
[1] pry(main)> Time.now
=> 2020-07-31 19:39:18 +0900
[2] pry(main)> Time.now.class
=> Time

#application.rb wird verwendet und die Klasse wird zu TimeWithZone
[3] pry(main)> Time.current
=> Fri, 31 Jul 2020 19:39:35 JST +09:00
[4] pry(main)> Time.current.class
=> ActiveSupport::TimeWithZone

Verwenden Sie Time.current oder Time.zone.now, um das aktuelle Datum und die aktuelle Uhrzeit abzurufen

Es gibt die folgenden Methoden, um das aktuelle Datum und die aktuelle Uhrzeit abzurufen.

  1. Time.now (verwenden Sie die Zeitzone der Umgebungsvariablen)
  2. DateTime.now (unter Verwendung der Zeitzone der Umgebungsvariablen)
  3. Time.current (verwenden Sie die Zeitzone von application.rb)
  4. Time.zone.now (verwenden Sie die Zeitzone von application.rb)

Zusammenfassend ist es besser, die TimeWithZone-Klasse 3 oder 4 zu verwenden (denn wenn Sie sie zu einer internationalen Anwendung machen möchten, können Sie sie auf verschiedene Arten handhaben).

#Die Zeitzone der Umgebungsvariablen wird verwendet
[1] pry(main)> Time.now
=> 2020-07-31 19:43:14 +0900 #Zeitklasse
[2] pry(main)> DateTime.now
=> Fri, 31 Jul 2020 19:43:21 +0900 #DateTime-Klasse

# application.Die Zeitzone rb wird verwendet
[3] pry(main)> Time.current
=> Fri, 31 Jul 2020 19:43:26 JST +09:00 #ActiveSupport::TimeWithZone-Klasse
[4] pry(main)> Time.zone.now
=> Fri, 31 Jul 2020 19:43:32 JST +09:00 #ActiveSupport::TimeWithZone-Klasse

Referenzartikel

Ich habe auf den folgenden Artikel verwiesen. Der Artikel erklärt es sehr detailliert. https://qiita.com/jnchito/items/cae89ee43c30f5d6fa2c

Recommended Posts

Welche Klasse sollte verwendet werden, um Datum und Uhrzeit in der Rails-App abzurufen (Time, DateTime, TimeWithZone)?
Ändern Sie Datum und Uhrzeit in Rails in japanische Notation
[Java] Verwenden Sie ResolverStyle.LENIENT, um Datum und Uhrzeit gut zu handhaben
Rufen Sie das aktuelle Datum und die aktuelle Uhrzeit ab, indem Sie die Zeitzone in Thymeleaf angeben
So erhalten Sie das Datum mit Java
Verwenden Sie die Timecop in Rails-Webanwendung, um die Zeit im Browser zu verschieben
[Rails] Verwenden Sie devise, um Informationen zum aktuell angemeldeten Benutzer abzurufen
[Java Spring MVC] Ich möchte DI in meiner eigenen Klasse verwenden
Ich habe versucht, die Sitzung in Rails zu organisieren
Vereinheitlichen Sie die Zeitzone der Rails-App mit der japanischen Zeit
Ich möchte rekursiv die Oberklasse und die Schnittstelle einer bestimmten Klasse erhalten
Ich möchte den Wert in Ruby erhalten
[Java] Verwendung der Kalenderklasse und der Datumsklasse
Ich möchte PowerMock in einer Klasse verwenden, die parametrisierte Tests und gewöhnliche Tests kombiniert
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
Ich möchte ein kleines Symbol in Rails verwenden
[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
Was soll ich für das Test-Framework verwenden [Rails]
[Schienen] Vorsichtsmaßnahmen beim Vergleich von Datum und Uhrzeit mit DateTime
Umgang mit Datum und Uhrzeit in Ruby. Verwenden Sie Datum und Uhrzeit richtig.
[Schienen] Überprüfen Sie die Startzeit (Datum / Uhrzeit-Typ) und die Endzeit
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Was ist die LocalDateTime-Klasse? [Java-Anfänger] -Datum und Zeitklasse-
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
[Rails] Erhalten Sie access_token zum Zeitpunkt der Twitter-Authentifizierung mit Sorcery und speichern Sie es in der Datenbank
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
[Spring Boot] Ich möchte meine eigene Eigenschaftendatei hinzufügen und den Wert mit env.getProperty () abrufen.
Wenn Sie eine Methode in RSpec verspotten möchten, sollten Sie die Methode allow für mock und die Singleton-Methode verwenden.
[Java] Abrufen von Datumsinformationen 10 Tage später in Millisekunden in der Datumsklasse
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
Daten sortieren Absteigend, aufsteigend / Schienen
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Verwendung der Wrapper-Klasse
[Ruby] Grundlagen zu Datum, Uhrzeit und Datumszeit
Ich habe die Punkte zusammengefasst, die bei der kombinierten Verwendung von Ressourcen und Ressourcen zu beachten sind
So erhalten Sie das aktuelle Datum als Zeichenfolge im Format JJJJMMTT
(Für Anfänger) [Rails] Zeitsparende Technik! So installieren und verwenden Sie slim
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
Ist es möglich, die Bibliothek (aar) in die Android-Bibliothek (aar) zu stellen und zu verwenden?
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
Einbetten und Anzeigen von YouTube-Videos in Rails (Sie können die eingegebene URL auch durch Bearbeiten abrufen).