zic - compilador de fusos horários
zic [ -v ] [ -d diretório ] [
-l hora local ] [ -p regras posix ] [ -L
nome do arquivo pula segundo ] [ -s ] [ -y
comando ] [ nome do arquivo ... ]
Zic lê o texto oriundo do(s) arquivo(s) nomeado na
linha de comando e cria um arquivo especificado com
informações de conversão de tempo nesta entrada. Se um
nome de arquivo é -, a entrada padrão é
lida.
Estas opções estão disponíveis:
- -d diretório
- Cria o arquivo de conversão de tempo no diretório nomeado ao
invés do diretório padrão nomeado abaixo.
- -l fuso
horário
- Usa o fuso horário fornecido como hora local. Zic irá
atuar como se a entrada contivesse uma linha de ligação na
forma
Ligação fuso horário hora
local
- -p fuso
horário
- Usa a regra de fusos horários fornecida quando está tratando
com as variáveis de ambiente de fusos horários no formato
POSIX. Zic irá atuar como se a entrada contivesse uma linha
de ligação na forma
Ligação fuso horário regras
posix
- -L nome do arquivo pula
segundo
- Lê informação para pular o segundo com o nome do
arquivo fornecido. Se esta opção não é usada,
nenhuma informação para pular segundo aparecerá no
arquivo de saída.
- -v
- Reclama se um ano que apareçe no arquivo de dados está fora
do intervalo de anos representáveis pelos valores de
time(2)
- -s
- Limita os valores de tempo armazenados nos arquivos de saída a
valores que são os mesmos se são tomados com sinal ou sem
sinal. Você pode usar esta opção para gerar arquivos
compatíveis com SVVS.
- -y comando
- Use o comando fornecido ao invés de yearistype quando
estiver verificando os tipos de ano (veja abaixo).
As linhas de entrada são feitas de campos. Campos
são separados entre si por um número qualquer de caracteres
espaço. O espaço inicial e seguintes na linha de entrada
serão ignorados. Um caractere sem aspas (#) na entrada introduz um
comentário que se estende até o fim da linha onde caractere
(#) aparece novamente. Caracteres espaços e (#) podem ser contidos
por aspas duplas (") se eles são usados com uma parte do campo.
Qualquer linha que é vazia (depois de tirar seu comentário)
é ignorada. Linhas que não são vazias devem ser de um
dos três tipos: linha de regra, linha de fuso, e linha de
ligação.
Uma linha de regra tem a forma
Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Por exemplo:
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
Os campos que constituem uma linha de regra são:
- NAME
- Forneçe o nome (arbitrário) do conjunto de regras do qual
esta faz parte.
- FROM
- Fornece o primeiro ano no qual a regra é aplicada. Qualquer ano na
forma inteira pode ser fornecido; o calendário Gregoriano é
assumido. A palavra minimum (ou uma abreviação)
significa o menor ano representável como um inteiro. A palavra
maximum (ou uma abreviação) significa o maior ano
representável como um inteiro. Regras podem descrever tempos que
não são representáveis como valores de tempo, com
tempos não representáveis ignorados; isto permite que regras
possam ser portáveis entre computadores com diferentes tipos de
valores de tempo.
- TO
- Forneçe o ano final no qual a regra é aplicada. Além
disso minimum e maximum (como acima), a palavra only
(ou uma abreviação) pode ser usada para repetir o valor do
campo FROM.
- TYPE
- Forneçe o tipo de ano no qual a regra é aplicada. Se
TYPE é - então a regra é aplicada em
todos os anos entre FROM e TO inclusive. Se TYPE for
outra coisa, então zic executa o comando yearistype
year type
para verificar o tipo de um ano: um status de saída zero significa
que o ano é do tipo fornecido; um status de saída um
significa que o ano não é do tipo fornecido.
- IN
- Nome dos meses nos quais a regra tem efeito. Os nomes dos meses podem ser
abreviados.
- ON
- Forneçe o dia em que as regras tem efeito. Formas reconhecidas
incluem:
5 o quinto dia do mês
lastSun o último Domingo do mês
lastMon a última Segunda do mês
Sun>=8 o primeiro Domingo no oitavo dia ou depois
Sun<=25 o último Domingo no dia 25 ou antes
Nomes de dias da semana podem ser abreviados ou soletrados por
inteiro. Note que não deve ter espaços dentro do campo
ON
- AT
- Forneçe a hora do dia na qual a regra tem efeito. Formas
reconhecidas incluem:
2 tempo em horas
2:00 tempo em horas e minutos
15:00 tempo no formato de 24 houras
1:28:14 tempo em horas, minutos, e segundos
aonde a hora 0 é meia-noite e inicia o dia, e a hora 24
é meia-noite e encerra o dia. Qualquer uma dessas formas pode ser
seguida pela letra w se o tempo fornecido é o tempo local
"wall clock",
s se o tempo fornecido é o tempo local
"standard" , ou u (ou g ou z) se o tempo
fornecido é o tempo "universal"; na ausência de
um indicador, o tempo "wall clock" é assumido.
- SAVE
- Fornece a quantia de tempo a ser adicionada no tempo local padrão
quando a regra está em efeito. Este campo tem formato igual ao
campo AT (ainda que, claro, os sufixos w e s
não são usados).
- LETTER/S
- Fornece a "parte variável" (Por exemplo, os "S"
ou "D" em "EST" ou "EDT") das
abreviações dos fusos horários para serem usadas
quando a regra está em efeito. Se este campo é -, a
parte variável é nula.
Uma linha de fuso tem a forma
Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Por exemplo:
Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00
Os campos que constituem uma linha de fuso são:
- NAME
- O nome do fuso horário. Este é o nome usado na
criação do arquivo de informação de
conversão de tempo para o fuso.
- GMTOFF
- A quantia de tempo adionada ao UTC para fornecer o tempo padrão
neste fuso. O campo tem o mesmo formato que os campos AT e
SAVE da linha de regra; inicie o campo com um sinal de menos se o
tempo deve ser subtraido do UTC.
- RULES/SAVE
- O nome da regra(s) que aplicada no fuso horário ou,
alternativamente, uma quantia de tempo para adicionar no tempo local
padrão. Se este campo é - então o tempo
padrão sempre aplica no fuso horário.
- FORMAT
- O formato para a abreviação do fuso horário neste
fuso horário. O par de caracteres %s é usado para
exibir onde a "parte variável" da
abreviação do fuso horário vai. Alternativamente, a
barra (/) separa abreviações padrão e de luz do
dia.
- UNTIL
- O tempo no qual o offset UTC ou as alterações de regra(s)
para uma localidade. Ele é especificado como um ano, um mês,
um dia, e uma hora do dia. Se ele é especificado, a
informação do fuso horário é gerada a partir
do offset UTC fornecido e a regra muda até o tempo especificado. O
mês, dia e a hora do dia tem que ter o formato como nas colunas IN,
ON, e AT de uma regra; colunas seguintes podem ser omitidas, e padronizads
para o valor mais próximo possível das colunas
faltantes.
- A próxima linha deve ser uma linha de
"continuação" ; esta possui a mesma forma que a
linha de fuso exceto que a cadeia "Zone" e o nome são
omitidos, tanto a linha de continuação situará o
início da informação no tempo especificado como o
campo UNTIL na linha anterior no arquivo usado pela linha anterior.
Linhas de continuação podem conter um campo UNTIL ,
apenas como linhas de fuso fazem, indicando que a próxima linha
é também uma continuação.
Uma linha de ligação tem a forma
Link LINK-FROM LINK-TO
Por exemplo:
Link Europe/Istanbul Asia/Istanbul
O campo LINK-FROM deveria aparecer como o campo NAME em alguma
linha de fuso; e o campo LINK-TO é usado como um nome
alternativo para aquele fuso.
Exceto para linhas de continuação, linhas podem
aparecer em qualquer ordem na entrada.
Linhas no arquivo que descreve salto de segundos tem a seguinte
formato:
Leap YEAR MONTH DAY HH:MM:SS CORR R/S
Por exemplo:
Leap 1974 Dec 31 23:59:60 + S
Os campos ANO, MÊS, DIA, e HH:MM:SS contam
quando o salto do segundo ocorre. O campo CORR deveria ter
"+" se um segundo fosse adicionado ou "-" se um segundo
fosse retirado. O campo R/S deveria ter (uma abreviação
de) "Stationary" se o tempo do salto de segundo fornecido por outros
campos deveria ser interpretado como UTC ou (uma abreviação de)
"Rolling" se o tempo do salto de segundo fornecido por outros campos
deveria ser interpretado como um tempo local "wall clock".
Para áreas com mais que dois tipos de tempo local,
você pode precisar usar tempo local padrão no campo AT
da regra de transição de tempo mais próxima para
assegurar que o tempo de transição mais próximo gravado
no arquivo compilado está correto.
Diretório padrão usado para arquivos criados
/usr/local/etc/zoneinfo
André L. Fassone Canova
<lonelywolf@blv.com.br> (tradução)
XLeslie Harlley Watter <leslie@netpar.com.br>
(revisão)