Provided by: manpages-pt-dev_20040726-4_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)