XSLT конвертирует SimpleDateTime в часовой пояс GMT-00: 00 - PullRequest
1 голос
/ 03 февраля 2012

Мне нужна помощь в XSLT для переформатирования времени, без особой удачи.

<names> 
    <name>
        <foo id='x_date'>
             <value> 01/23/2011 13:20:00 PDT</value> 
        </foo> 
    </name>
</names>

Как изменить дату с ' 01/23/2011 01:23:00 PDT ' на ' 01/23/2011 09:24:00 GMT + 00: 00 'через XSLT?

Пожалуйста, помогите, это убивает меня: -)

1 Ответ

1 голос
/ 03 февраля 2012

Если вы открыты для использования не-XSLT-решения, например, с использованием расширений Xalan в Java, вы можете выбрать функции даты и времени, как описано здесь:

http://exslt.org/date/index.html

Что-то вроде

<xsl:value-of select="
  date:format-date(
    date:parse-date(/names/name/foo/value, $inPattern),
    $outPattern)" />

В вашем конкретном случае вам, вероятно, придется реализовать собственный форматер даты в пользовательском пространстве имен. Это довольно просто:

  • Добавьте Ксалан в ваш путь к классам
  • Создание пользовательского форматера даты:
    package org.example;
    public class MyExtension {
      public static String myFormat(String date) {
        // Do the formatting
      }
    }
  • Используйте вышеуказанный форматер в таблице стилей XSLT:
    <xsl:stylesheet xmlns:myextension="http://org.example.MyExtension">
      ..
      <xsl:value-of select="myextension:myFormat(/names/name/foo/value)"/>
      ..
    </xsl:stylesheet>

Дополнительную документацию можно найти здесь:

http://exslt.org

...