web-dev-qa-db-fra.com

comment lire les informations de fuseau horaire

Je cherchais un livre de programmation système. Elle a mentionné l’utilisation d’une variable TZ avec une liste séparée par des deux points qui est utilisée à partir de /usr/share/zoneinfo. Le livre est probablement un peu dépassé.

J'ai vérifié sur mon système Ubuntu

/usr/share/zoneinfo/Asia$ file Oral

donne la sortie suivante

Oral: données du fuseau horaire, version 2, 14 drapeaux horaires GMT, 14 drapeaux horaires std, aucune seconde intercalaire, 51 temps de transition, 14 caractères d'abréviation

J'ai essayé de l'ouvrir en vi mais le texte n'a pas pu être lu. J'ai aussi essayé de lire /etc/localtime mais ici aussi, il n'a pas pu être lu.

  1. Comment puis-je lire les types de fichiers ci-dessus?

  2. Où la variable d'environnement TZ est-elle définie dans Ubuntu 10.04?

8
Registered User

Eh bien, cela dépend de ce que vous voulez lire?

Presque tous les programmes dépendent simplement de $TZ défini dans l'environnement ou de /etc/localtime constituant un lien vers un fichier de fuseau horaire. La bibliothèque C organisera alors automatiquement, par exemple, localtime() pour renvoyer l'heure correcte.

1) Comment puis-je lire essentiellement le type de fichier ci-dessus

zdump -v /etc/localtime vous montrera le contenu des fichiers.

Ce sont des fichiers compilés non destinés à être lus par les humains. apt-get source tzdata vous donnera la source d'où ils viennent.

2) Où est la variable d’environnement TZ définie dans Ubuntu 10.04

Ce n'est pas défini par défaut. Au lieu de cela, /etc/localtime est une copie du fichier zoneinfo approprié et /etc/timezone est le nom de cette zone.

Vous pouvez les changer avec Sudo tzconfig ou via l'interface graphique.

Vous pouvez le définir par exemple ~/.env si vous souhaitez une valeur par défaut personnelle différente.

9
poolie