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