0 votes

Alternatives non sudo pour obtenir le fuseau horaire actuel ?

sudo systemsetup -gettimezone retournera le fuseau horaire actuel du système à la ligne de commande mais cela nécessite sudo.

date "+%z" retournera le décalage (par exemple +0900) et date "+%Z" retournera le code court du fuseau horaire (par exemple JST).

Y a-t-il une autre façon, que ce soit une commande, un exécutable ou une API ? Mes recherches n'ont rien donné. Je suis en train d'écrire un programme de terminal CLI (pas en Objective-C/Swift) dans lequel il serait utile d'avoir accès à ce que le système est actuellement paramétré.

Toute aide ou compréhension sera grandement appréciée.

6voto

cafertayyar Points 256

/etc/localtime est un lien symbolique pointant vers le fuseau horaire actuellement utilisé. Vous pouvez donc utiliser

$ readlink /etc/localtime
/var/db/timezone/zoneinfo/Europe/Istanbul
$ readlink /etc/localtime | sed 's#/var/db/timezone/zoneinfo/##g'
Europe/Istanbul

Note: sudo systemsetup -gettimezone affiche Time Zone: Europe/Istanbul pour moi.

1voto

Marc Wilson Points 3640

Oui, il y a une API. La méthode date(1) l'utilise. Vous pouvez lire la source (disponible gratuitement), vous remarquez la méthode qu'elle utilise, vous l'utilisez dans votre propre programme.

En lisant la source pour date(1), vous constatez qu'elle utilise la fonction de bibliothèque fprintftime() dans la fonction show_date() ce qui conduit à la générique strftime().

https://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X