[RUBY] Changer la date et l'heure en notation japonaise dans Rails

introduction

Vous pouvez utiliser la colonne de table created_at pour récupérer la date et l'heure de création des données. Cependant, il est difficile de l'utiliser tel quel.

Cette fois, j'aimerais pouvoir le récupérer avec une notation telle que «2020/7/21 9: 05: 50».

Afficher la date et l'heure de création

Tout d'abord, extrayons le created_at des données de la table @ post`` @ post tel quel.

erb:posts/show.html.erb


<p>un événement: <%= @post.event %></p>
<p>endroit: <%= @post.place %></p>
<p>Date et heure de création: <%= @post.created_at %></p>
place event created_at
Tokyo Feu d'artifice 2020-07-21 00:05:50 UTC

Vous pouvez voir que c'est très différent de la notation cible 2020/7/21 9: 05: 50.

Plus précisément, les trois points suivants sont différents.

  1. ʻUTC` (heure normale mondiale)
  2. «/» est remplacé par «-»
  3. La notation «7» est «07»

Je voudrais le corriger dans l’ordre.

1. Changement de l'heure standard mondiale à l'heure japonaise

Puisque la programmation est utilisée partout dans le monde, elle sera sortie en "heure standard mondiale" telle quelle. Par conséquent, changeons-le en "heure du Japon".

config/application.rb


class Application < Rails::Application
  # *****Ajoutez la ligne suivante*****
  config.time_zone = "Asia/Tokyo"
end

En insérant cette seule ligne, il était possible de changer «heure standard mondiale» en «heure du Japon» comme indiqué ci-dessous.

place event created_at
Tokyo Feu d'artifice 2020-07-21 09:05:50 +0900

Il y a un «+ 0900», ce qui signifie que le décalage horaire entre l'heure du Japon et l'heure normale du monde est de +9 heures.

2. Changez le format

C'est l'heure du Japon, mais il est difficile de comprendre si le format est «2020-07-21 09:05:50 + 0900». Changeons cela.

Tout d'abord, installez le gem pour plusieurs langues et définissez-le sur japonais.

Gemfile


#Pour Rails6
gem 'rails-i18n', '~> 6.0'
#Pour Rails5
gem 'rails-i18n', '~> 5.1'

Terminal


bundle install

config/application.rb


class Application < Rails::Application
  #Abréviation
  config.time_zone = "Asia/Tokyo"
  # *****Ajoutez la ligne suivante*****
  config.i18n.default_locale = :ja
end

Ensuite, utilisez la méthode «l» fournie par «rails-i18n».

erb:posts/show.html.erb


<p>un événement: <%= @post.event %></p>
<p>endroit: <%= @post.place %></p>
<!-- *****ajouter l***** -->
<p>Date et heure de création: <%= l @post.created_at %></p>

De plus, créez un fichier appelé config / locales / ja.yml et définissez le format.

config/locales/ja.yml


ja:
  time:
    formats:
      default: "%Y/%m/%d %H:%M:%S"

En conséquence, la notation change comme suit et +0900 disparaît également.

place event created_at
Tokyo Feu d'artifice 2020/07/21 09:05:50

Le format peut être changé librement, par exemple, si vous n'avez pas besoin de secondes, vous pouvez omettre:% S.

config/locales/ja.yml


      default: "%Y/%m/%d %H:%M"
place event created_at
Tokyo Feu d'artifice 2020/07/21 09:05
Symbole Signification
% Y Année
% m mois (MOIS)
% d JOUR
% H HEURE
% M minutes (MINUTE)
% S secondes (SECOND)

[Page de référence] Manuel de référence de Ruby 2.7.0 (strftime)

3. Éliminer le remplissage zéro (0)

Par exemple, il n'est pas naturel que «juillet» soit écrit «07», supprimons donc «0».

config/locales/ja.yml


ja:
  time:
    formats:
      # ***** %Derrière-Ajouter*****
      default: "%Y/%-m/%-d %-H:%M:%S"
place event created_at
Tokyo Feu d'artifice 2020/7/21 9:05:50

En insérant «-», nous avons pu éliminer «0 padding» comme décrit ci-dessus.

Recommended Posts

Changer la date et l'heure en notation japonaise dans Rails
[Ruby on Rails] Modifiez la date de mise à jour et la date de création selon votre notation préférée
Comment changer le nom de l'application dans les rails
Date et l'heure
Comment traduire Rails en japonais en général
[Rails] Comment convertir l'affichage de l'heure UC en affichage de l'heure japonais
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Ruby on Rails] Comment écrire enum en japonais
[Rails] Précautions lors de la comparaison de la date et de l'heure avec DateTime
Comment écrire une recherche de comparaison de dates dans Rails
Convivialité de la classe de date et d'heure dans chaque langue
Traitement de la date et de l'heure en Ruby. Utilisez correctement la date et l'heure.
Comment modifier la valeur de paramètre de application.properties au moment du démarrage dans Spring Boot
[Java] Changez la langue et les paramètres régionaux en anglais avec les options JVM
Politique de mise en œuvre pour enregistrer et afficher dynamiquement le fuseau horaire dans les rails
[Rails] Comment définir des macros dans Rspec et standardiser le traitement
Exemple de code pour analyser la date et l'heure avec SimpleDateFormat de Java
[Java] Utilisez ResolverStyle.LENIENT pour bien gérer la date et l'heure
Activer jQuery et Bootstrap dans Rails 6 (Rails 6)
Obtenez la date et l'heure actuelles en spécifiant le fuseau horaire dans Thymeleaf
[Webpacker] Résumé de l'installation de Bootstrap et jQuery dans Rails 6.0
[Rails] Comment introduire le kaminari avec Slim et changer le design
[Rails] Paramètres de validation et localisation en japonais
Comment supprimer de grandes quantités de données dans Rails et problèmes
[MySQL] [java] Date et heure de réception
Supprimez les "actifs" et les "turbolinks" dans "Rails6".
Fonction CRUD et MVC dans Rails
Comment installer jQuery dans Rails 6
Points à retenir et concepts dans le didacticiel Ruby on Rails
Comment installer Swiper in Rails
Passer de SQLite3 à PostgreSQL dans un nouveau projet Ruby on Rails
Utilisez l'application Web Timecop in Rails pour déplacer le temps dans le navigateur
Comment modifier le nombre maximum et maximum de données POST dans Spark
(Pour les débutants) [Rails] Technologie de gain de temps! Comment installer et utiliser Slim
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter le calcul de la date en Java
Installez Webpacker et Yarn pour exécuter Rails
Explication des objets Ruby Time et Date
Comment utiliser MySQL dans le didacticiel Rails
Remplacez List <Optional <T >> par Optional <List <T >> en Java
[Java] Comment régler la date sur 00:00:00
Comment fixer la date système dans JUnit
Java 8 pour démarrer maintenant ~ API de date et d'heure ~
Comment créer SquashTM et comment prendre en charge le japonais
[Rails] [Note] Quand ajouter = à <%%> et quand pas
[rails] Comment configurer le routage dans les ressources
Notation pour mettre des variables dans une chaîne
[Ruby on Rails] Notation japonaise de l'erreur
Comment obtenir la date avec Java
Comment implémenter la fonctionnalité de classement dans Rails
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
[Rails] Comment traduire la devise en japonais
De Java à C et de C à Java dans Android Studio