Provided by: manpages-es_1.55-10_all bug

NOMBRE

       strftime - formatea fecha y hora

SINOPSIS

       #include <time.h>

       size_t strftime(char *s, size_t max, const char *format,
                           const struct tm *tm);

DESCRIPCI'ON

       La  funcion  strftime()  formatea  el  tiempo descompuesto en campos tm
       segun la especificacion de formato format y coloca el resultado  en  el
       vector de caracteres s de tamano max.

       Los  caracteres  normales  de  la  cadena de formato se copian en s sin
       conversion ninguna. Los especificadores de conversion se introducen con
       un caracter de porcentaje `%', y se reemplazan en s como sigue:

       %a     El  nombre  abreviado del dia de la semana segun la localizacion
              en curso.

       %A     El nombre del dia de la semana, completo, segun la  localizacion
              en curso.

       %b     El nombre abreviado del mes segun la localizacion en curso.

       %B     El nombre completo del mes segun la localizacion en curso.

       %c     La representacion preferida de fecha y hora para la localizacion
              en curso.

       %C     El siglo (ano/100) como un entero de 2 digidos. (SU)

       %d     El dia del mes como un numero en base diez (en el rango de 01  a
              31).

       %D     Equivalente  a  %m/%d/%y. (Sip - solo para norteamericanos.  Los
              norteamericanos deben darse cuenta que en otros paises  %d/%m/%y
              es   bastante   comun.   Esto   significa  que  en  un  contexto
              internacional este formato es ambiguo y  no  se  deberia  usar).
              (SU)

       %e     Como  %d,  el  dia  del mes como un numero decimal, pero un cero
              inicial se reemplaza por un espacio. (SU)

       %E     Modificador; use formato alternativo, ver mas abajo. (SU)

       %F     Equivalente a %Y-%m-%d (el formato de fecha de ISO 8601). (C99)

       %G     El ano con siglo como un numero decimal segun  el  estandar  ISO
              8601.   El  ano  de  4  digitos  correspondiente al numero de la
              semana ISO (ver %V).  Este tiene el mismo formato  y  valor  que
              %y,  salvo  que  si  el numero de la semana ISO pertenece al ano
              anterior o siguiente, ese ano se utiliza en su lugar. (TZ).

       %g     Como %G, pero sin siglo, es decir,  con  un  ano  de  2  digitos
              (00-99). (TZ)

       %h     Equivalente a %b. (SU)

       %H     La  hora  como un numero en base diez en formato de 24 horas (en
              el rango de 00 a 23).

       %I     La hora como un numero en base diez en formato de 12  horas  (en
              el rango de 01 a 12).

       %j     El  dia juliano (dia del ano) como un numero en base diez (en el
              rango de 001 a 366).

       %k     La hora (en un reloj de 24 horas) como un numero decimal (en  el
              rango de 0 a 23); los digitos individuales son precedidos por un
              blanco. (Ver tambien %H). (TZ)

       %l     La hora (en un reloj de 12 horas) como un numero decimal (en  el
              rango de 1 a 12); los digitos individuales son precedidos por un
              blanco. (Ver  tambien %I). (TZ).

       %m     El mes como un numero en base diez (en el rango de 01 a 12).

       %M     El minuto como un numero en base diez (en el rango de 00 a 59).

       %n     Un caracter de nueva linea. (SU)

       %O     Modificador; use un formato alternativo, ver mas abajo. (SU)

       %p     O `AM' ("Ante Meridiem",  antes  del  mediodia)  o  `PM'  ("Post
              Meridiem",  despues  del  mediodia)  de acuerdo con el valor del
              tiempo dado, o la cadena de caracteres correspondiente segun  la
              localizacion  en  curso.   El  medio dia se trata como `pm' y la
              media noche como `am'.

       %P     Como %p pero en letras minusculas: `am'  o  `pm'  o  una  cadena
              correspondiente para la localizacion actual. (GNU)

       %r     El  tiempo  en  notacion  a.m. o p.m..  En la localizacion POSIX
              esto es equivalente a `%I:%M:%S %p'. (SU)

       %R     El tiempo en notacion de 24 horas (%H:%M). (SU) Para una version
              que incluya lo segundos, ver %T mas abajo.

       %s     El numero de segundos desde la Epoca, es decir, desde 1970-01-01
              00:00:00 UTC. (TZ)

       %S     El segundo como un numero decimal (en el rango de 00 a 61)

       %t     Un caracter tabulador. (SU)

       %T     El tiempo en notacion de 24 horas (%H:%M:%S). (SU)

       %u     El dia de la semana como un numero decimal, en el rango de  1  a
              7, siendo 1 el Lunes.  Ver tambien %w. (SU)

       %U     El  numero  de  la  semana del ano actual como un numero en base
              decimal, en el rango de 00 a 53, empezando por el primer domingo
              como el primer dia de la primera semana. Ver tambien %V y %W.

       %W     El  numero  de  la  semana del ano actual como un numero decimal
              segun el estandar ISO 8601:1988, donde la semana 1 es la primera
              semana  que tiene al menos 4 dias del ano actual y el lunes como
              el primer dia de la semana. Ver tambien %U y %W. (SU)

       %w     El dia de la semana como un numero decimal, en el rango de  0  a
              6, siendo el domingo el cero.  Ver tambien %u.

       %W     El numero de la semana del ano actual como un numero decimal, en
              el rango de 00 a 53, empezando  con  el  primer  Lunes  como  el
              primer dia de la primera semana.

       %x     La  representacion  preferida  de la fecha (sin la hora) para la
              localizacion en curso.

       %X     La representacion preferida de la hora (sin la  fecha)  para  la
              localizacion en curso.

       %y     El  ano como un numero en base diez sin la centuria (en el rango
              de 00 a 99).

       %Y     El ano como un numero en base diez, incluyendo la centuria.

       %z     El huso horario como las horas de  diferencia  respecto  a  GMT.
              Necesario  para emitir fechas conformes a RFC822 (usando "%a, %d
              %b %Y %H:%M:%S %z"). (GNU)

       %Z     La zona horaria, nombre o abreviatura.

       %+     La fecha y hora en el formato de date(1). (TZ)

       %%     Un caracter de porcentaje literal, '%'.

       Algunos indicadores de conversion se  pueden  modificar  precediendolos
       por  un  modificador  E  u  O  para indicar que se debe usar un formato
       alternativo.  Si no existen formatos  o  especificaciones  alternativos
       para la localizacion actual, el comportamiento quedara como si se usara
       la especificacion de conversion sin modificar. (SU)  `The  Single  Unix
       Specification'  menciona  %Ec,  %EC, %Ex, %EX, %Ry, %EY, %Od, %Oe, %OH,
       %OI, %Om, %OM, %OS, %Ou, %OU, %OV, %Ow, %OW, %Oy, donde el  efecto  del
       modificador  O  es el de usar simbolos numericos alternativos (digamos,
       numeros romanos) y el del modificador E es el de usar un representacion
       alternativa dependiente de la localizacion.

       La  estructura  para el tiempo descompuesto, tm, se define en <time.h>.
       Vease tambien ctime(3).

VALOR DEVUELTO

       La funcion strftime() devuelve el numero de caracteres  puestos  en  el
       vector s, sin incluir el caracter cero terminador (NUL), suponiendo que
       la cadena, incluyendo  el  caracter  cero  terminador,  cabe.  En  caso
       contrario, devuelve 0 y el contenido del vector es indefinido. (Esto es
       asi al menos desde la version 4.4.4 de libc; las versiones de libc  muy
       antiguas,  tales  como  la  libc  4.4.1, devolvian max si el vector era
       demasiado pequeno).

       Dese cuenta que el valor devuelto 0 no indica necesariamente un  error;
       por ejemplo, en muchas localizaciones %p da lugar a una cadena vacia.

ENTORNO

       Se usan las variables de entorno TZ y LC_TIME.

CONFORME A

       ANSI  C,  SVID  3,  ISO  9899.   Existen inclusiones estrictas entre el
       conjunto de conversiones dadas en ANSI C (sin marcar),  aquellas  dadas
       en  `the  Single Unix Specification' (marcadas como SU), aquellas dadas
       en el paquete de huso horario de Olson (marcadas TZ) y  aquellas  dadas
       en  glibc  (marcadas  GNU), excepto que %+ no esta soportado en glibc2.
       Por otro lado,  glibc2  tiene  varias  extensiones  mas.  POSIX.1  solo
       referencia  a  ANSI C; POSIX.2 describe bajo date(1) varias extensiones
       que se podrian aplicar tambien a strftime.  La conversion  %F  esta  en
       C99 y POSIX 1003.1-2001.

FALLOS

       Algunas  versiones  con  fallos  de  gcc  se quejan sobre el uso de %c:
       advertencia: `%c' da s'olo los 2 'ultimos  d'igitos  del  a~no  en  algunas
       localizaciones.   Por  supuesto  los programadores insisten en usar %c,
       puesto que proporciona la representacion de  fecha  y  hora  preferida.
       Pueden  encontrarse  todo  tipo  de  extranos  atajos  para evitar este
       problema de gcc. Uno  relativamente  elegante  es  anadir  una  funcion
       intermedia
              size_t  my_strftime(char  *s, size_t max, const char *fmt, const
              struct tm *tm) {
                   return strftime(s, max, fmt, tm);
              }

V'EASE TAMBI'EN

       date(1), time(2), ctime(3), setlocale(3), sprintf(3)