2 votes

Comment changer le format de date et d'heure de mon système en format ISO 8601 YYYY-MM-DD hh:mm:ss sur Ubuntu 18.04.4 LTS ?

J'utilise Ubuntu 18.04.4 LTS avec GNOME DE et je veux changer le format de date et d'heure de l'ensemble du système au format ISO 8601, plus précisément AAAA-MM-JJ pour les dates et hh:mm:ss pour les heures.

Comment puis-je le faire ?

0voto

WU-TANG Points 2273

Pour avoir un point de référence, vous pouvez exécuter ces commandes d'abord, et peut-être garder la sortie dans un terminal sur le côté :

localectl status
locale
locale -ck d_t_fmt
locale -ck d_fmt
locale -ck t_fmt

Puis dans un autre terminal cd /usr/share/i18n/locales

Localisez la locale que vous utilisez dans le répertoire...
Pour moi, c'était en_US.
Copiez ce fichier de définition de locale dans un nom personnalisé que vous souhaitez utiliser.

sudo cp en_US my_en_US

À l'aide de votre éditeur préféré, modifiez votre fichier de définition de la locale personnalisée avec les formats de date souhaités. L'OP voulait un format système pour sa date/heure... et bien il y a plus d'un formatage de date/heure sur le système, donc vous devrez faire beaucoup de formatage ici si vous voulez que tout soit couvert. c'est à dire Date, Date heure, heure, heure format AM/PM, date pour l'heure de début et de fin. date commande...(comme vous le verrez dans le fichier de définition)

Je ne vais illustrer qu'un seul de ces points ici..... Le format de date pour le date commandement.

sudo vi my_en_US

Allez à la ligne qui dit "date_fmt". Modifiez le formatage au format souhaité.

date_fmt "%Y-%m-%d %H:%M:%S"

note : J'ai lu quelques instructions qui disent que vous entrez ce formatage avec des valeurs Unicode à la place ex) "<u0025><u0059> ,etc,etc".... Mais comme ce n'était pas le cas dans cette version d'ubuntu, je suppose que vous pouvez simplement utiliser l'encodage en pourcentage... Si votre fichier a le format Unicode, vous pouvez prendre la chaîne de date/heure que vous désirez, au format pourcentage, et la passer dans hexdump pour obtenir les équivalents Unicode... echo -n "%Y-%m-%d %H:%M:%S" | hexdump ou utiliser ce site https://www.branah.com/unicode-converter

Enregistrez votre fichier et quittez... Complétez votre fichier de définition de locale et générez votre nouvelle locale
sudo localedef -f UTF-8 -i my_en_US MY_en.UTF-8

Il existe des instructions qui disent d'ajouter une variable d'environnement dans /etc/environment ou /bashrc etc.... mais tout ce que j'ai fait c'est sudo localectl set-locale LC_TIME=MY_en.UTF-8

Cela a pris immédiatement pour moi quand j'ai lancé le date commande. Mais vous devrez peut-être vous déconnecter ou redémarrer, je n'en suis pas sûr. Les services à redémarrer ont changé au fil du temps (selon le reste de l'internet), donc difficile à déchiffrer.

Vous pouvez exécuter à nouveau les commandes du début de l'article à des fins de comparaison/dépannage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X