如何在<g:select> </g:select>中将日期格式化为来自db的指定格式

时间:2011-05-17 09:49:15

标签: grails groovy

我需要一个包含日期的下拉列表。

当我写

<g:select id="dob" name="dob" from="${Person.list().dateOfBirth}"  value="${personInstance?.dateOfBirth}" />

这会以2011-05-17 00:00:00.0格式显示日期但我需要格式mm/dd/yyyy

我该怎么做?

4 个答案:

答案 0 :(得分:3)

这是我能想到的最短的解决方案(未经测试):

<g:set var="dateFormat" value="MM/dd/yyyy"/>

<g:select id="dob" name="dob" from="${Person.list().dateOfBirth*.format(dateFormat)}"  
    value="${personInstance?.dateOfBirth?.format(dateFormat)}" />

答案 1 :(得分:1)

Grails有一个formatDate标记,您可以在此情况下将其用作方法调用。例如:

value="${formatDate(format:'mm/dd/yyyy', date: yourDate)}" />

答案 2 :(得分:1)

optionValue="${{formatDate(format: 'mm/dd/yyyy', date: it.dateOfBirth)}}"

答案 3 :(得分:0)

这有用吗?

<g:set var="sdf" value="${new java.text.SimpleDateFormat('MM/dd/yyyy')}"/>
<g:select from="${Person.list()}" name="dob" optionValue="${{sdf.format(it.dateOfBirth)}}" optionKey="${{sdf.format(it.dateOfBirth)}}"/>