g:formatDate java.sql.Date class 个实例的问题

g:formatDate issue with java.sql.Date class instances

Java 7 - java.sql.Date - 使用 java.util.Date class.

的 toInstant 方法

Java 8 - java.sql.Date - 覆盖 toInstant 方法,现在抛出 UnsupportedOperationException 异常。

grails-gsp-plugin v3.3.2 - DefaultGrailsTagDateHelper - 能够格式化 java.sql.Date class 实例。

grails-gsp-plugin v4.0.0 - DefaultGrailsTagDateHelper - 无法格式化 java.sql.Date class 实例 因为 date.toInstant() 正在抛出 UnsupportedOperationException (预计按照 java 8 代码)。

并且根据 docs Grails 4 不再与 Java 1.7.

兼容

所以现在预计 g.formatDate 不允许 java.sql.Date class 实例?还是插件有问题?

我认为此更改是在 https://github.com/grails/grails-gsp/commit/20e6ad461b575642263e4689de9cb1c7f33d1a7b. If you file a report at https://github.com/grails/grails-gsp/issues 引入的,我们可以进行调查。

感谢反馈。

解决方法 --

java.sql.Date class 实例获取毫秒数并将其传递到标签库中。

g.formatDate(date: date.getTime(), format: 'yyyy/MM/dd')