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 |