The Date Tool is an additional tool created by Hannon Hill specifically for Cascade Server Velocity scripts.

A quick ${_EscapeTool.dollar}_DateTool example:

Consider the following Velocity:

#set($string = '1982' )

#set( $date = $_DateTool.toDate("yyyy",$string))

$_DateTool.format('E, d MMM y k:mm:ss', $date))

Want to know the result? Click here or read the next section, learn more while scrolling to the bottom of the page.

My CD Collection

This example will use DateTool to display the album release year for the CD and then calculate the # of years since the album was released.


Consider this XML data:

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
    <cd>
        <title>Greatest Hits</title>
        <artist>Dolly Parton</artist>
        <country>USA</country>
        <company>RCA</company>
        <price>9.90</price>
        <year>1982</year>
    </cd>
    <cd>
        <title>Still got the blues</title>
        <artist>Gary Moore</artist>
        <country>UK</country>
        <company>Virgin records</company>
        <price>10.20</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Eros</title>
        <artist>Eros Ramazzotti</artist>
        <country>EU</country>
        <company>BMG</company>
        <price>9.90</price>
        <year>1997</year>
    </cd>
    <cd>
        <title>One night only</title>
        <artist>Bee Gees</artist>
        <country>UK</country>
        <company>Polydor</company>
        <price>10.90</price>
        <year>1998</year>
    </cd>
    <cd>
        <title>Sylvias Mother</title>
        <artist>Dr.Hook</artist>
        <country>UK</country>
        <company>CBS</company>
        <price>8.10</price>
        <year>1973</year>
    </cd>
    <cd>
        <title>Maggie May</title>
        <artist>Rod Stewart</artist>
        <country>UK</country>
        <company>Pickwick</company>
        <price>8.50</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Romanza</title>
        <artist>Andrea Bocelli</artist>
        <country>EU</country>
        <company>Polydor</company>
        <price>10.80</price>
        <year>1996</year>
    </cd>
    <cd>
        <title>When a man loves a woman</title>
        <artist>Percy Sledge</artist>
        <country>USA</country>
        <company>Atlantic</company>
        <price>8.70</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Black angel</title>
        <artist>Savage Rose</artist>
        <country>EU</country>
        <company>Mega</company>
        <price>10.90</price>
        <year>1995</year>
    </cd>
    <cd>
        <title>1999 Grammy Nominees</title>
        <artist>Many</artist>
        <country>USA</country>
        <company>Grammy</company>
        <price>10.20</price>
        <year>1999</year>
    </cd>
    <cd>
        <title>For the good times</title>
        <artist>Kenny Rogers</artist>
        <country>UK</country>
        <company>Mucik Master</company>
        <price>8.70</price>
        <year>1995</year>
    </cd>
    <cd>
        <title>Big Willie style</title>
        <artist>Will Smith</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>9.90</price>
        <year>1997</year>
    </cd>
    <cd>
        <title>Tupelo Honey</title>
        <artist>Van Morrison</artist>
        <country>UK</country>
        <company>Polydor</company>
        <price>8.20</price>
        <year>1971</year>
    </cd>
    <cd>
        <title>Soulsville</title>
        <artist>Jorn Hoel</artist>
        <country>Norway</country>
        <company>WEA</company>
        <price>7.90</price>
        <year>1996</year>
    </cd>
    <cd>
        <title>The very best of</title>
        <artist>Cat Stevens</artist>
        <country>UK</country>
        <company>Island</company>
        <price>8.90</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Stop</title>
        <artist>Sam Brown</artist>
        <country>UK</country>
        <company>A and M</company>
        <price>8.90</price>
        <year>1988</year>
    </cd>
    <cd>
        <title>Bridge of Spies</title>
        <artist>T`Pau</artist>
        <country>UK</country>
        <company>Siren</company>
        <price>7.90</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Private Dancer</title>
        <artist>Tina Turner</artist>
        <country>UK</country>
        <company>Capitol</company>
        <price>8.90</price>
        <year>1983</year>
    </cd>
    <cd>
        <title>Midt om natten</title>
        <artist>Kim Larsen</artist>
        <country>EU</country>
        <company>Medley</company>
        <price>7.80</price>
        <year>1983</year>
    </cd>
    <cd>
        <title>Pavarotti Gala Concert</title>
        <artist>Luciano Pavarotti</artist>
        <country>UK</country>
        <company>DECCA</company>
        <price>9.90</price>
        <year>1991</year>
    </cd>
    <cd>
        <title>The dock of the bay</title>
        <artist>Otis Redding</artist>
        <country>USA</country>
        <company>Atlantic</company>
        <price>7.90</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Picture book</title>
        <artist>Simply Red</artist>
        <country>EU</country>
        <company>Elektra</company>
        <price>7.20</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Red</title>
        <artist>The Communards</artist>
        <country>UK</country>
        <company>London</company>
        <price>7.80</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Unchain my heart</title>
        <artist>Joe Cocker</artist>
        <country>USA</country>
        <company>EMI</company>
        <price>8.20</price>
        <year>1987</year>
    </cd>
</catalog>

Here's the Velocity to transform that XML data:

<h2>My CD Collection</h2>
    #set ($today = $_DateTool.getDate())  
    <p><i>Last updated $_DateTool.format("EEEEE, MMMMM dd, yyyy",$today)</i></p>
    <table style="border:3px solid #450084"> 
      <tr style="background:#ccc999">   
        <th style="text-align:left">Title</th>
        <th style="text-align:left">Artist</th>
        <th style="text-align:left">Release Date</th>
        <th style="text-align:left">Years since release</th>
      </tr>
      #set($cds = $_XPathTool.selectNodes($contentRoot, '//catalog/cd'))  
      #foreach($cd in $cds)
      #set ($day="-01-01 08:00:00")
      #set ($artist = $cd.getChild('artist').value)
      #set ($title = $cd.getChild('title').value)
      #set ($year = $cd.getChild('year').value)
      #set($now = $_DateTool.format("yyyy",$today))
      #set ($releasetime = $_MathTool.sub($now, $year))  
      <tr>
        <td>$title</td>
        <td>$artist</td>
        <td>$year</td>
        <td>$releasetime years</td>
      </tr>
      #end
     ##END LOOP
    </table>

And below is the rendered output:



My CD Collection

Last updated Thursday, February 08, 2024

Title Artist Release Date Years since release
Empire Burlesque Bob Dylan 1985 39 years
Hide your heart Bonnie Tyler 1988 36 years
Greatest Hits Dolly Parton 1982 42 years
Still got the blues Gary Moore 1990 34 years
Eros Eros Ramazzotti 1997 27 years
One night only Bee Gees 1998 26 years
Sylvias Mother Dr.Hook 1973 51 years
Maggie May Rod Stewart 1990 34 years
Romanza Andrea Bocelli 1996 28 years
When a man loves a woman Percy Sledge 1987 37 years
Black angel Savage Rose 1995 29 years
1999 Grammy Nominees Many 1999 25 years
For the good times Kenny Rogers 1995 29 years
Big Willie style Will Smith 1997 27 years
Tupelo Honey Van Morrison 1971 53 years
Soulsville Jorn Hoel 1996 28 years
The very best of Cat Stevens 1990 34 years
Stop Sam Brown 1988 36 years
Bridge of Spies T`Pau 1987 37 years
Private Dancer Tina Turner 1983 41 years
Midt om natten Kim Larsen 1983 41 years
Pavarotti Gala Concert Luciano Pavarotti 1991 33 years
The dock of the bay Otis Redding 1987 37 years
Picture book Simply Red 1985 39 years
Red The Communards 1987 37 years
Unchain my heart Joe Cocker 1987 37 years


That result you were wondering about:

If you do this code:

#set($string = '1982' )

#set( $date = $_DateTool.toDate("yyyy",$string))

$_DateTool.format('E, d MMM y k:mm:ss', $date)

And (drumroll, please) here is the result:

Fri, 1 Jan 1982 24:00:00

Back to Top