¿Hay alguna manera de obtener el nombre de Canonical Time Zone a partir de un script de shell de Linux? por ejemplo, si mi zona horaria configurada es PDT, me gustaría obtener "America/Los_Angeles".Obteniendo el nombre de la zona horaria de Canonical en el script de shell
Sé que podría obtener del enlace simbólico/etc/localtime si estuviera configurado, pero como podría no estar configurado en todos los servidores, no puedo confiar en ese.
Por otro lado, puedo obtener el nombre de la zona horaria corta con el comando date +% Z, pero aún necesito el nombre canónico.
¿Hay alguna manera de obtener el nombre canónico de la zona horaria actual o transformar la zona horaria obtenida con la fecha +% Z, incluso si el enlace simbólico/etc/localtime no está configurado?
, diría 'PDT' está más cerca de un nombre canónico, mientras que 'America/Los_Angeles' es sólo una etiqueta descriptiva para ayudar a trazar una ubicación para la zona horaria correcta. – chepner
No creo que esto sea posible; una única abreviatura, incluso si se expandió de manera no ambigua (por ejemplo, "Tiempo de luz diurna del Pacífico"), puede tener múltiples entradas de TZ-base de datos correspondientes. Por ejemplo, PDT no es solo 'America/Los_Angeles', sino también' America/Dawson', 'America/Ensenada',' America/Sitka', 'America/Tijuana',' America/Vancouver', 'America/Whitehorse' y 'US/Pacific'. (De hecho, si no especificaste que querías 'America/Los_Angeles', habría asumido que querías' US/Pacific'.) – ruakh