Grails 如何将日期格式化为来自<;中db的指定格式;g:选择>;

Grails 如何将日期格式化为来自<;中db的指定格式;g:选择>;,grails,groovy,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格式 我该怎么做呢?这行吗 <g:set var="sdf" value="${new java.text.SimpleDa

我需要一个记录日期的下拉列表

当我写作时

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

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

我该怎么做呢?

这行吗

<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)}}"/>

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


value=“${formatDate(格式:'mm/dd/yyyy',日期:yourDate)}”/>

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



date:yourDate是指单个日期或日期列表,我将仅获取格式为2011-05-17 00:00:00.0的日期列表,其中dateOfBirth类型为date。执行此操作时,我遇到异常,无法在null对象上调用dateOfBirth
<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)}" />
optionValue="${{formatDate(format: 'mm/dd/yyyy', date: it.dateOfBirth)}}"