160 votes

fuseau horaire par défaut de postgres

J'ai installé PostgreSQL 9 et l'heure affichée est décalée d'une heure par rapport à l'heure du serveur.

La course à pied Select NOW() montre : 2011-07-12 11:51:50.453842+00

La date du serveur s'affiche : Tue Jul 12 12:51:40 BST 2011

Il y a un décalage d'une heure, mais le fuseau horaire indiqué dans la rubrique phppgadmin est : TimeZone Etc/GMT0

J'ai essayé d'aller dans le postgresql.conf et la mise en place

timezone = GMT

puis redémarrage, mais pas de changement.

Des idées ? Je pensais qu'il aurait simplement utilisé le fuseau horaire du serveur, mais ce n'est pas le cas !

SOLUTION ! J'ai mis à GMT Après avoir cherché, il s'est avéré que j'avais besoin de le mettre à Europe/London . Il tient compte de l'heure +1 de l'heure d'été britannique, ce qui n'est pas le cas de l'heure GMT !

7voto

ARA1307 Points 529

Notez que de nombreux clients tiers ont leurs propres paramètres de fuseau horaire qui se superposent à ceux du serveur Postgres et de l'application \or les paramètres de la session.

Par exemple, si vous utilisez 'IntelliJ IDEA 2017.3' (ou DataGrips), vous devez définir le fuseau horaire comme suit :

'DB source properties' -> onglet 'Advanced' -> 'VM Options' : -Duser.timezone=UTC+06:00

sinon vous verrez "UTC" malgré ce que vous avez défini ailleurs.

2voto

Jay Points 147

Pour les utilisateurs de Windows 10/11 qui souhaitent le modifier de façon permanente, le fichier se trouve dans :

C:\Program Files\PostgreSQL\<your-postgres-version>\data\postgresql.conf

Pour moi, c'était spécifiquement :

C:\Program Files\PostgreSQL\14\data\postgresql.conf

Ensuite, dans votre éditeur de texte ctrl-f pour trouver timezone et réinitialisez les lignes suivantes en fonction de votre fuseau horaire préféré (le nom peut être trouvé en exécutant la commande SELECT * FROM pg_timezone_names ):

log_timezone = 'UTC'

y

timezone = 'UTC'

dans l'interface graphique de votre base de données ou dans l'interface de ligne de commande, exécutez la requête suivante pour recharger le fichier de configuration.

select pg_reload_conf()

confirmer les modifications permanentes en exécutant le programme :

show timezone

1voto

MGrillo Points 11

Peut-être pas en rapport avec la question, mais j'ai eu besoin d'utiliser CST, j'ai réglé le fuseau horaire du système sur le tz désiré (America/...) et ensuite dans postgresql conf, j'ai réglé la valeur du fuseau horaire sur 'localtime' et cela a fonctionné comme un charme, current_time imprimant la bonne heure (Postgresql 9.5 sur Ubuntu 16).

0voto

Rui Lima Points 1299

Que se passe-t-il si vous réglez le fuseau horaire du rôle que vous utilisez ?

ALTER ROLE my_db_user IN DATABASE my_database
    SET "TimeZone" TO 'UTC';

Cela peut-il être utile ?

0voto

vitams Points 357

Pour la solution postgres 14+ : dans le fichier postgresql.conf timezone = 'Europe/Budapest'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X