Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       strptime  -  converte uma representacao de hora do tipo string para uma
       estrutura de hora tm

SINOPSE

       #include <time.h>

       char *strptime(const char *s, const char *formato, struct tm *tm);

DESCRI,C~AO

       strptime() e a funcao complementar a strftime() e converte a string  de
       caracteres apontada por s para valores que sao armazenadas na estrutura
       tm apontada por tm, usando o formato especificado pelo formato.  Aqui o
       formato e uma string de caracteres que consiste de descritores de campo
       e caracteres de texto, reminiscentes do scanf(3).   Cada  descritor  de
       campo  consiste  de  um  caractere  % seguido por outros caracteres que
       especificam a sustituicao para o descritor de campo.  Todos  os  outros
       caracteres  na  string  formato  devem  ter um caractere que combine na
       string de entrada. Excecoes sao os  espacos  em  branco  na  string  de
       formato que podem casar com zero ou mais espacos em branco na string de
       entrada.

       A funcao strptime() processa a string de  entrada  da  direita  para  a
       esquerda.   Cada  um dos tres elementos de entrada possiveis (espaco em
       branco, literal ou formato) sao manipulados  um  apos  o  outro.  Se  a
       entrada  nao  pode ser casada com a string de formato, a funcao para. O
       restante das strings de formato e de entrada nao sao processadas.

       Os seguintes descritores de campo sao suportados:

       %%     o caractere %

       %a ou %A
              dia da semana, usando os nomes dos dias da semana  do  'locale';
              pode ser especificado o nome abreviado ou completo

       %b ou %B ou %h
              mes,  usando  o nome de mes do 'locale'; pode ser especificado o
              nome abreviado ou completo

       %c     data e hora como %x %X

       %C     data e hora, na representacao de data e hora em formato longo do
              'locale'

       %d or %e
              dia  do  mes  (1-31;  zeros  a  esquerda  sao permitidos mas nao
              requeridos)

       %D     data como %m/%d/%y

       %H or %k
              hora (0-23; zeros a esquerda sao permitidos mas nao requeridos)

       %I or %l
              hora (0-12; zeros a esquerda sao permitidos mas nao requeridos)

       %j     numero do dia do ano (001-366)

       %m     numero do mes (1-12; zeros a esquerda  sao  permitidos  mas  nao
              requeridos)

       %M     minutos   (0-59;   zeros  a  esquerda  sao  permitidos  mas  nao
              requeridos)

       %p     equivalente do 'locale' ao AM ou PM

       %r     hora como %I:%M:%S %p

       %R     hora como %H:%M

       %S     segundos  (0-61;  zeros  a  esquerda  sao  permitidos  mas   nao
              requeridos. O segundo extra e permitido para anos bissextos)

       %T     hora como %H:%M:%S

       %w     numero do dia da semana (0-6) com o domindo sendo o primeiro dia
              da semana

       %x     data, usando o formato de data do 'locale'

       %X     hora, usando o formato de hora do 'locale'

       %y     ano dentro do seculo (0-99; zeros a esquerda sao permitidos  mas
              nao  requeridos.   Caso  um  seculo  nao  seja  especificado, os
              valores na faixa de 69 a 99 se referem aos  anos  no  seculo  XX
              (1969  a 1999 inclusive); valores na faixa de 00 a 68 se referem
              aos anos no seculo XXI (2000 a 2068 inclusive).

       %Y     ano, incluindo o seculo (por exemplo, 1988)

       Maiusculas e minusculas sao ignoradas ao encontrar itens como nomes  de
       meses ou dias da semana.

       Alguns  descritores  de  campo  podem  ser modificados pelos caracteres
       modificadores E e O para indicar que um formato  ou  uma  especificacao
       alternativa  devem  ser  usados.   Se  o  formato  ou  a  especificacao
       alternativa nao existem no 'locale' corrente, sao usados os descritores
       de campo nao modificados.

       O  modificador E especifica que a string de entrada pode conter versoes
       alternativas da representacao de data e hora  que  sao  dependentes  do
       'locale':

       %Ec    a representacao alternativa de data e hora do 'locale'.

       %EC    o  nome  do  ano  base (periodo) na representacao alternativa do
              'locale'.

       %Ex    a representacao alternativa de data do 'locale'.

       %EX    a representacao alternativa de hora do 'locale'.

       %Ey    a  compensacao  do  %EC  (somente  o   ano)   na   representacao
              alternativa do 'locale'.

       %EY    a representacao alternativa completa do ano.

       O  modificador  O  especifica  que  a entrada numerica pode estar em um
       formato alternativo dependente do 'locale':

       %Od or %Oe
              o dia do  mes  usando  os  simbolos  numericos  alternativos  do
              'locale'; zeros a esquerda sao permitidos mas nao requeridos.

       %OH    a  hora  (relogio  de  24  horas)  usnado  os simbolos numericos
              alternativos do 'locale'.

       %OI    a hora (relogio  de  12  horas)  usando  os  simbolos  numericos
              alternativos do 'locale'.

       %Om    o mes usando os simbolos numericos alternativos do 'locale'.

       %OM    os   minutos   usando  os  simbolos  numericos  alternativos  do
              'locale'.

       %OS    os  segundos  usando  os  simbolos  numericos  alternativos   do
              'locale'.

       %OU    o  numero  da  semana  do  ano  (domingo  como o primeiro dia da
              semana) usando os simbolos numericos alternativos do 'locale'.

       %Ow    o numero  do  dia  da  semana  (domingo=0)  usando  os  simbolos
              numericos alternativos do 'locale'.

       %OW    o  numero da semana do ano (segunda-feira como o primeiro dia da
              semana) usando os simbolos numericos alternativos do 'locale'.

       %Oy    o  ano  (compensacao  de  %C)  usando  os   simbolos   numericos
              alternativos do 'locale'.

       A estrutura de horas quebrada tm e definida em <time.h> como segue:

              struct tm
              {
                      int     tm_sec;         /* segundos */
                      int     tm_min;         /* minutos */
                      int     tm_hour;        /* horas */
                      int     tm_mday;        /* dia do mes */
                      int     tm_mon;         /* mes */
                      int     tm_year;        /* ano */
                      int     tm_wday;        /* dia da semana */
                      int     tm_yday;        /* dia do ano */
                      int     tm_isdst;       /* horario de verao */
              };

VALOR DE RETORNO

       O  valor  de  retorno  de  uma  funcao  e  um  ponteiro para o primeiro
       caractere nao processado nesta chamada de  funcao.  Caso  a  string  de
       entrada  contenha  mais  caracteres  que  o  requerido  pela  string de
       formato, o valor de retorno aponta logo depois do ultimo  caractere  de
       entrada  consumido.  No  caso  em  que a string de entrada inteira seja
       consumida, o valor de retorno aponta  para  o  byte  NUL  no  final  da
       string.  Se  strptime()  falha em encontrar toda a string de formato, e
       portanto ocorre um erro, a funcao retorna NULL.

VEJA TAMB'EM

       strftime(3), time(2), setlocale(3), scanf(3)

NOTAS

       A principio, esta funcao nao inicializa  tm,  mas  apenas  armazena  os
       valores  especificados.  Isto  significa  que  tm deve ser inicializado
       antes da chamada.  Detalhes diferem um pouco entre diferentes  sistemas
       Unix.  A implementacao da libc GNU nao toca naqueles campos que nao sao
       especificados explicitamente, exceto por recomputar os campos tm_wday e
       tm_yday se qualquer um dos elementos ano, mes ou dia mudaram.

       Esta  funcao  e  disponivel  somente em bibliotecas mais recentes que a
       versao 4.6.5.  As inclusoes da libc4 e da  libc5  do  Linux  definem  o
       prototipo  incondicionalmente;  a  inclusao glibc2 fornece um prototipo
       somente  quando  _XOPEN_SOURCE  ou  _GNU_SOURCE  sao   definidos.    Os
       caracteres  modificadores  de  'locale'  E e O sao aceitos desde a libc
       5.4.13.  A especificacao 'y' (ano no seculo) e tomada para  especificar
       um ano no seculo XX na libc4 e na libc5. Sera um ano na faixa de 1950 a
       2049 pela glib2.0, e um ano na faixa de 1969 a 2068 pela glibc2.1.

TRADU,C~AO PARA A L'INGUA PORTUGUESA

       RUBENS DE JESUS  NOGUEIRA  <darkseid99@usa.net>  (traducao)  XXXXXX  XX
       XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisao)