Wicket - 参数化StringResourceModel的奇怪行为

时间:2012-07-21 14:04:52

标签: java internationalization wicket jodatime wicket-1.5

这是我的资源键:

Expired {0} days ago

这是StringResourceModel的定义:

new StringResourceModel("store.expired.tooltip", null, Days.daysBetween(expirationDate, refDate));

预期结果类似于Expired 20 days,但实际结果为Expired P20D ago

知道造成这种情况的原因是什么?我想我做everything right但不确定。

1 个答案:

答案 0 :(得分:8)

这实际上是您使用joda-time时的错误。请参阅javad的{javadoc {/ 3}}。

Days.daysBetween(expirationDate, refDate)返回一个joda Days对象,其toString()方法返回ISO8601持续时间格式字符串,这就是您所看到的。

使用Days.daysBetween(expirationDate, refDate).getDays()代替它会使它成为一个整数,它应格式正确。