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

NOME

       strptime  -  converte uma representação 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ÇÃO

       strptime() é a função complementar a strftime() e converte a string  de
       caracteres apontada por s para valores que são armazenadas na estrutura
       tm apontada por tm, usando o formato especificado pelo formato.  Aqui o
       formato é 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 sustituição para o descritor de campo.  Todos  os  outros
       caracteres  na  string  formato  devem  ter um caractere que combine na
       string de entrada. Exceções são os  espaços  em  branco  na  string  de
       formato que podem casar com zero ou mais espaços em branco na string de
       entrada.

       A função strptime() processa a string de  entrada  da  direita  para  a
       esquerda.   Cada  um dos três elementos de entrada possíveis (espaço em
       branco, literal ou formato) são manipulados  um  após  o  outro.  Se  a
       entrada  não  pode ser casada com a string de formato, a função pára. O
       restante das strings de formato e de entrada não são processadas.

       Os seguintes descritores de campo são 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
              mês,  usando  o nome de mês do ’locale’; pode ser especificado o
              nome abreviado ou completo

       %c     data e hora como %x %X

       %C     data e hora, na representação de data e hora em formato longo do
              ’locale’

       %d or %e
              dia  do  mês  (1-31;  zeros  à  esquerda  são permitidos mas não
              requeridos)

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

       %H or %k
              hora (0-23; zeros à esquerda são permitidos mas não requeridos)

       %I or %l
              hora (0-12; zeros à esquerda são permitidos mas não requeridos)

       %j     número do dia do ano (001-366)

       %m     número do mês (1-12; zeros à esquerda  são  permitidos  mas  não
              requeridos)

       %M     minutos   (0-59;   zeros  à  esquerda  são  permitidos  mas  não
              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  à  esquerda  são  permitidos  mas   não
              requeridos. O segundo extra é permitido para anos bissextos)

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

       %w     número 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 século (0-99; zeros à esquerda são permitidos  mas
              não  requeridos.   Caso  um  século  não  seja  especificado, os
              valores na faixa de 69 a 99 se referem aos  anos  no  século  XX
              (1969  a 1999 inclusive); valores na faixa de 00 a 68 se referem
              aos anos no século XXI (2000 a 2068 inclusive).

       %Y     ano, incluindo o século (por exemplo, 1988)

       Maiúsculas e minúsculas são 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  especificação
       alternativa  devem  ser  usados.   Se  o  formato  ou  a  especificação
       alternativa não existem no ’locale’ corrente, são usados os descritores
       de campo não modificados.

       O  modificador E especifica que a string de entrada pode conter versões
       alternativas da representação de data e hora  que  são  dependentes  do
       ’locale’:

       %Ec    a representação alternativa de data e hora do ’locale’.

       %EC    o  nome  do  ano  base (período) na representação alternativa do
              ’locale’.

       %Ex    a representação alternativa de data do ’locale’.

       %EX    a representação alternativa de hora do ’locale’.

       %Ey    a  compensação  do  %EC  (somente  o   ano)   na   representação
              alternativa do ’locale’.

       %EY    a representação alternativa completa do ano.

       O  modificador  O  especifica  que  a entrada numérica pode estar em um
       formato alternativo dependente do ’locale’:

       %Od or %Oe
              o dia do  mês  usando  os  símbolos  numéricos  alternativos  do
              ’locale’; zeros à esquerda são permitidos mas não requeridos.

       %OH    a  hora  (relógio  de  24  horas)  usnado  os símbolos numéricos
              alternativos do ’locale’.

       %OI    a hora (relógio  de  12  horas)  usando  os  símbolos  numéricos
              alternativos do ’locale’.

       %Om    o mês usando os símbolos numéricos alternativos do ’locale’.

       %OM    os   minutos   usando  os  símbolos  numéricos  alternativos  do
              ’locale’.

       %OS    os  segundos  usando  os  símbolos  numéricos  alternativos   do
              ’locale’.

       %OU    o  número  da  semana  do  ano  (domingo  como o primeiro dia da
              semana) usando os símbolos numéricos alternativos do ’locale’.

       %Ow    o número  do  dia  da  semana  (domingo=0)  usando  os  símbolos
              numéricos alternativos do ’locale’.

       %OW    o  número da semana do ano (segunda-feira como o primeiro dia da
              semana) usando os símbolos numéricos alternativos do ’locale’.

       %Oy    o  ano  (compensação  de  %C)  usando  os   símbolos   numéricos
              alternativos do ’locale’.

       A estrutura de horas quebrada tm é 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 mês */
                      int     tm_mon;         /* mês */
                      int     tm_year;        /* ano */
                      int     tm_wday;        /* dia da semana */
                      int     tm_yday;        /* dia do ano */
                      int     tm_isdst;       /* horário de verão */
              };

VALOR DE RETORNO

       O  valor  de  retorno  de  uma  função  é  um  ponteiro para o primeiro
       caractere não processado nesta chamada de  função.  Caso  a  string  de
       entrada  contenha  mais  caracteres  que  o  requerido  pela  string de
       formato, o valor de retorno aponta logo depois do último  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 função retorna NULL.

VEJA TAMBÉM

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

NOTAS

       A princípio, esta função não 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 implementação da libc GNU não toca naqueles campos que não são
       especificados explicitamente, exceto por recomputar os campos tm_wday e
       tm_yday se qualquer um dos elementos ano, mês ou dia mudaram.

       Esta  função  é  disponível  somente em bibliotecas mais recentes que a
       versão 4.6.5.  As inclusões da libc4 e da  libc5  do  Linux  definem  o
       protótipo  incondicionalmente;  a  inclusão glibc2 fornece um protótipo
       somente  quando  _XOPEN_SOURCE  ou  _GNU_SOURCE  são   definidos.    Os
       caracteres  modificadores  de  ’locale’  E e O são aceitos desde a libc
       5.4.13.  A especificação ’y’ (ano no século) é tomada para  especificar
       um ano no século XX na libc4 e na libc5. Será um ano na faixa de 1950 a
       2049 pela glib2.0, e um ano na faixa de 1969 a 2068 pela glibc2.1.

TRADUÇÃO PARA A LÍNGUA PORTUGUESA

       RUBENS DE JESUS  NOGUEIRA  <darkseid99@usa.net>  (tradução)  XXXXXX  XX
       XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisão)