Comment modifier les paramètres de fuseau horaire à partir de la ligne de commande


222

J'ai une machine virtuelle configurée sur PST que plusieurs collègues ont dans des fuseaux horaires différents.

Que dois-je faire si je veux changer le fuseau horaire en EST et en GMT ?

Réponses:


290

Utilisation timedatectl

sudo timedatectl set-timezone <timeszone>

Exemples:

  • Fuseau horaire comme EST

    sudo timedatectl set-timezone EST
    
  • Fuseau horaire en UTC

    sudo timedatectl set-timezone UTC
    
  • Liste de tous les fuseaux horaires valides

    timedatectl list-timezones
    

Cette commande est idéale pour les scripts d'automatisation, car elle ne nécessite aucune interaction de l'utilisateur, contrairement à l'autre réponse donnée dpkg-reconfigure tzdata.


1
Pas un fan de +1 commentaires, mais j'en mets un ici car cela a fonctionné pour moi de la meilleure façon. Je voulais un seul outil en ligne de commande pour changer le fuseau horaire, plutôt que de lancer un menu ou un programme graphique (je ne sais pas ce qui se tzdatapasse, comment ça marche, mais je n'ai pas besoin de ça une ligne de commande). Merci!
Phil Ryan

fonctionne comme un charme;)
user332660

Fait intéressant, il fait quelque chose d'un peu différent de tzdata. J'ai eu un problème avec le temps Java étant différent de l'heure du système après l'application d'un correctif. Tzdata n'a pas fonctionné pour résoudre le problème, mais cela a fonctionné.
Daniel Bower

1
cela n'a pas fonctionné pour moi; Cependant le dpkg-reconfigurefait le tour.
Antti Haapala

14.04.4 serveur ubuntu
Antti Haapala

40

En tant que root, vous devez exécuter:

dpkg-reconfigure tzdata

Un outil basé sur un menu doit être lancé pour vous permettre de changer le fuseau horaire.


32

Ce qui suit fonctionne aussi. Pour GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

Pour EST:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

8
Je pense qu'il serait préférable de lier l'un des fichiers de ville plutôt que GMT ou EST, car ils garderont une trace de l'heure avancée, tandis que la liaison (par exemple) GMT ne modifiera pas l'heure système afin de refléter l'heure de passage à l'heure d'été. dans votre ville. Par exemple:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi le

c'est le meilleur
Hasan Tıngır

16

Le moyen le plus simple, en particulier pour un serveur, est de lister les fuseaux horaires:

timedatectl list-timezones

Et choisissez le vôtre, par exemple:

timedatectl set-timezone Europe/Athens

C'est ça! , :-)


6

Pour exécuter un programme avec un paramètre de fuseau horaire différent, définissez la TZvariable d'environnement, par exemple, exécutez-la TZ=Pacific/Kiritimati datepour voir l'heure qu'il est sur l'île Christmas ou export TZ=Pacific/Kiritimatipour que le paramètre dure pour une session shell.


6

Editez le timezonefichier dans le /etcdossier en tant que:

Etc/GMT

Vous pouvez utiliser le format suivant:

Region "/" City 

Exemple de /etc/timezone:

Europe/Athens

ou

Europe/Paris
Europe/London

Vous pouvez expérimenter avec le: dpkg-reconfigure tzdata et vérifier le fichier timezone du chat.

Vous devez redémarrer ou redémarrer un service (pas le service ntp). Je ne sais pas lequel. Si quelqu'un sait s'il vous plaît partagez avec nous. (Testé sur Ubuntu 15.10, le changement est pris en compte instantanément)


4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Je recommande de CONTENU comme mentionné par d'autres. Si un script /etc/localtimeécrase accidentellement votre fichier, il écrase votre fichier de fuseau horaire Pacific ... et il est un peu pénible de le remplacer.

Copiez simplement le fichier Pacific sur le fichier localtime avec la commande ci-dessus.


Cela a réellement fonctionné pour moi. Je pense qu'il y a un problème avec Docker, ansible (?). Timedatectl et dpkg-reconfigure tzdata ont échoué pour moi. Après avoir copié, le fuseau horaire de EST est devenu PDT.
Dim

2

J'utilise le script suivant pour demander à l'utilisateur le fuseau horaire à définir, puis confirme qu'il a bien été défini:

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

Je l' appelle tz-set.


0

En tant que root, vous devez exécuter:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata


Veuillez expliquer au moins comment cette commande fonctionne pour changer le fuseau horaire.
Parto

0

Cela a fonctionné pour moi sur GCP Ubuntu 14 via SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Redémarrer le serveur
  4. Terminé
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.