Funciones XSLT y XPath

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

format-dateTime

XSLT

 

La función fn:format-dateTime da formato a la fecha y hora introducida en el primer argumento. Es posible definir el formato sólo con el segunto atributo, o bien, usando los cuatro atributos siguientes. La función puede tener dos o cinco atributos.

El segundo argumento es obligatorio y define básicamente el formato de la fecha y hora. El tercer argumento establece el idioma en que se muestran los meses y días de la semana, mientras que con el cuarto puede elegirse entre los distintos calendarios (gregoriano, musulmán, etc). El quinto argumento asigna un lugar geográfico a la fecha, de manera que se tendrán en cuenta diferencias regionales e históricas en la interpretación del calendario.

La indicación de fecha y hora tendrá el formato AAAA-MM-DD'T'HH:MM:SS. Es posible añadir además una zona horaria prefijada, por ejemplo en la forma: 2008-12-24T07:30+01:00 (für CET = UTC+1). Los otros argumentos se definen a través de códigos especiales o mediante una combinación de los mismos. El segundo argumento puede contener cualquier cadena, si bien códigos como [Y], [M] o [D], [H], [m] oder [s] se sustituyen mediante los componentes de los años, meses, días, horas, minutos y segundos en la indicación de fecha del primer argumento.

Con ayuda de modificadores adicionales se puede definir más concretamente el formato de salida de los valores. Por ejemplo, si se introduce [MN] aparecerá NOVIEMBRE en lugar del número 11 o, en su caso, noviembre si se introduce el códico [Mn].

El idioma en que se mostrarán los nombres de los días y meses se introduce, como hemos mencionado más arriba, en el tercer argumento mediante un código formado por dos caracteres. Por ejemplo "es" para español, "en" para inglés, "de" para alemán, etc. Para definir el calendario, en caso de usarse el calendario gregoriano, bastará una secuencia vacía, ya que éste es el valor por defecto. La compatibilidad con otros calendarios dependerá de la aplicación y se introduce a través de una cadena predeterminada de caracteres en mayúscula. La indicación de lugar y de idioma son redundantes.

La función fn:format-dateTime es exclusiva de XSLT, no siendo válida en XQuery o XPath.

 

Argumentos

Indicación de fecha y hora

Es obligatorio, pero puede ser una secuencia vacía.

Tipo: xs:dateTime

 

 

Modelo de formato

Obligatorio

Tipo: xs:string

 

 

Indicación de idioma

Opcional, sólo junto con la indicación de calendario y lugar.

Tipo: xs:string

 

 

Indicación de calendario

Opcional, sólo junto con la indicación de lugar e idioma.

Tipo: xs:string

 

 

Indicación de lugar

Opcional, sólo junto con la indicación de calendario e idioma.

Tipo: xs:string

 

Valor de salida

Cadena

Tipo: xs:string

 

 

Ejemplo

format-dateTime(xs:dateTime(current-dateTime()), 'el [D]. [M]. [Y] a las [H].[m]','es', (),())

Resultado: el 28. 1. 2009 a las 9.28

La fecha y hora actual se mostrarán según el patrón predefinido en esta expresión. El idioma será español y para las variables de lugar y calendario se tomarán los valores por defecto.

 

Ejemplo

format-dateTime(xs:dateTime('2008-12-24T07:05:59'), 'a los [s] segundos del [m1]º minuto de la [H1]ª hora del [D1]º día del [M1]º mes del año [Y1] después de Cristo.')

Resultado: a los 59 segundos del 5º minuto de la 7ª hora del dia 24º del 12º mes del año 2008 después de Cristo.

Las expresiones [m1], [H1], etc. hacen posible la indicación de minutos y horas con una sola cifra, mientras que los códigos [m01] o [m001], predefinen una indicación con dos o tres cifras respectivamente.

 

 

Ejemplo

format-dateTime(xs:dateTime('2008-12-24T07:05:59'), '[D]-[M]-[Y]')

Resultado: 24-12-2008

 

 

Ejemplo

format-dateTime(xs:dateTime('2008-12-24T07:05:59'), '[Y]')

Resultado: 2008

 

 

Ejemplo

format-dateTime(xs:dateTime('2008-12-24T07:05:59'), '[F], [D] de [Mn] de [Y]')

Resultado: Miércoles, 24 de diciembre de 2008

El código [F] indica el día de la semana. Aquí el idioma por defecto sería español (es). No obstante, debe tenerse en cuenta que procesadores como Saxon no soportan el idioma español.

  > Volver a la referencia alfabética de XSLT y XPATH