In der Tabellenspalte "created_at" können Sie Datum und Uhrzeit der Datenerstellung abrufen. Es ist jedoch schwierig, es so zu verwenden, wie es ist.
Dieses Mal möchte ich es mit einer Notation wie "2020/7/21 9: 05: 50" abrufen können.
Zuerst extrahieren wir das "created_at" der "@ post" -Tabellendaten "@ post" so wie es ist.
erb:posts/show.html.erb
<p>Veranstaltung: <%= @post.event %></p>
<p>Ort: <%= @post.place %></p>
<p>Erstellungsdatum und -zeit: <%= @post.created_at %></p>
place | event | created_at |
---|---|---|
Tokio | Feuerwerk | 2020-07-21 00:05:50 UTC |
Sie können sehen, dass es sich sehr von der Zielnotation "2020/7/21 9: 05: 50" unterscheidet.
Insbesondere unterscheiden sich die folgenden drei Punkte.
/
wird durch -
ersetztIch möchte es in der richtigen Reihenfolge korrigieren.
Da die Programmierung auf der ganzen Welt verwendet wird, wird sie so wie sie ist in "Weltstandardzeit" ausgegeben. Ändern wir es daher in "Japanische Zeit".
config/application.rb
class Application < Rails::Application
# *****Fügen Sie die folgende Zeile hinzu*****
config.time_zone = "Asia/Tokyo"
end
Durch Einfügen dieser einen Zeile war es möglich, die "Weltstandardzeit" in "Japanzeit" zu ändern, wie unten gezeigt.
place | event | created_at |
---|---|---|
Tokio | Feuerwerk | 2020-07-21 09:05:50 +0900 |
Es gibt eine "+ 0900", was bedeutet, dass der Zeitunterschied zwischen der Japan-Zeit und der Weltstandardzeit +9 Stunden beträgt.
Es ist Japan-Zeit, aber es ist schwer zu verstehen, ob das Format "2020-07-21 09:05:50 + 0900" ist. Lass es uns ändern.
Installieren Sie zuerst das Juwel für mehrere Sprachen und stellen Sie es auf Japanisch ein.
Gemfile
#Für Rails6
gem 'rails-i18n', '~> 6.0'
#Für Rails5
gem 'rails-i18n', '~> 5.1'
Terminal
bundle install
config/application.rb
class Application < Rails::Application
#Abkürzung
config.time_zone = "Asia/Tokyo"
# *****Fügen Sie die folgende Zeile hinzu*****
config.i18n.default_locale = :ja
end
Verwenden Sie dann die von "Rails-i18n" bereitgestellte "l" -Methode.
erb:posts/show.html.erb
<p>Veranstaltung: <%= @post.event %></p>
<p>Ort: <%= @post.place %></p>
<!-- *****füge l hinzu***** -->
<p>Erstellungsdatum und -zeit: <%= l @post.created_at %></p>
Außerdem erstellen wir eine Datei mit dem Namen config / locales / ja.yml und legen das Format fest.
config/locales/ja.yml
ja:
time:
formats:
default: "%Y/%m/%d %H:%M:%S"
Infolgedessen ändert sich die Notation wie folgt und +0900 verschwindet ebenfalls.
place | event | created_at |
---|---|---|
Tokio | Feuerwerk | 2020/07/21 09:05:50 |
Das Format kann frei geändert werden. Wenn Sie beispielsweise keine "Sekunden" benötigen, können Sie "% S" weglassen.
config/locales/ja.yml
default: "%Y/%m/%d %H:%M"
place | event | created_at |
---|---|---|
Tokio | Feuerwerk | 2020/07/21 09:05 |
Symbol | Bedeutung |
---|---|
% Y | Jahr |
% m | Monat (MONAT) |
% d | TAG |
% H | STUNDE |
% M | Minuten (MINUTE) |
% S | Sekunden (ZWEITER) |
[Referenzseite] Ruby 2.7.0 Referenzhandbuch (strftime)
Zum Beispiel ist es unnatürlich, dass "Juli" als "07" geschrieben wird. Entfernen wir also "0".
config/locales/ja.yml
ja:
time:
formats:
# ***** %Hinter-Hinzufügen*****
default: "%Y/%-m/%-d %-H:%M:%S"
place | event | created_at |
---|---|---|
Tokio | Feuerwerk | 2020/7/21 9:05:50 |
Durch Einfügen von "-" konnten wir "0-Polsterung" wie oben beschrieben eliminieren.
Recommended Posts