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 ?

Manyxcxi
la source

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.

Jossef Harush
la source
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.

maxschlepzig
la source
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
pm_labs
la source
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! , :-)

Dimitrios
la source
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.

Gilles
la source
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)

chasapis.christos
la source
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.

J Roysdon
la source
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.

Tom Hale
la source
0

En tant que root, vous devez exécuter:

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

Stefan Sebastian
la source
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é
Vignesh Chinnaiyan
la source