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

adjust-date-to-timezone

XPath

 

La función fn:adjust-date-to-timezone ajusta una fecha en función de una determinada zona horaria. El comportamiento de la función dependerá de si la fecha indicada tiene o no implícita una zona horaria.

La fecha se especifica en el formato AAAA-MM-DD. Es posible añadir además una zona horaria prefijada, por ejemplo en la forma: 2008-12-24+01:00 (CET = UTC+1). El argumento de zona horaria presenta el siguiente formato: la hora centroeuropea se indicaría p.ej. como +PT1H00M, la hora UTC PT0H00M y la Hora Estándar del Este de Estados Unidos -PT5H00M.

Si en la indicación de la zona horaria se introduce una secuencia vacía, la información sobre la zona horaria en la fecha será eliminada. En caso de que no se introduzca el argumento de zona horaria, ésta se extraerá, en su caso, de la fecha indicada en xs:date, o bien de la zona horaria implícita en el contexto. La mera indicación de la fecha lleva implícita la hora local 00:00:00 (medianoche). De esta manera, si a través del cambio de zona horaria la hora resultante deja de pertenecer al día indicado en la fecha de entrada (p.ej. nueva zona horaria < vieja zona horaria, o bien, nueva zona horaria > vieja zona horaria + 24) esto será tenido en cuenta en la fecha de salida.

 

Argumentos

Indicación de fecha

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

Tipo: xs:date

 

Zona horaria

Opcional

Tipo: xs:dayTimeDuration

 

Valor de salida

Indicación de fecha

Tipo: xs:date

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07-04:00'), xs:dayTimeDuration('-PT2H'))

Resultado: 2003-07-07-02:00

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07'), xs:dayTimeDuration('-PT5H'))

Resultado: 2003-07-07-05:00

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07+02:00'), ())

Resultado: 2003-07-07

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07'))

Resultado: 2003-07-07+01:00

Aquí la zona horaria implícita es UTC+2

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07+06:00'), xs:dayTimeDuration('-PT5H00M'))

Resultado: 2003-07-06-05:00

A causa de la nueva zona horaria se excede el margen del día y se indica un día menos en el resultado.

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07-14:00'), xs:dayTimeDuration('PT09H59M'))

Resultado: 2003-07-07+09:59

 

 

Ejemplo

adjust-date-to-timezone(xs:date('2003-07-07-14:00'), xs:dayTimeDuration('PT10H'))

Resultado: 2003-07-08+10:00

A causa de la diferencia de 24 horas entre la vieja y la nueva zona horaria se aumenta en un día la fecha resultante.

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