3

在 Grails 中使用joda 时间时,您可以设置默认的LocalDate格式,就像他们在此处所做的那样。我想对DurationPeriod做同样的事情,所以我不必输入类似的东西

durationFormatter.print(exampleObject.myDuration)

每次我想显示持续时间或期间。我想要调用/对象的toString()方法并让它以所需的格式打印。DurationPeriod

我试图在我的配置文件中实现PeriodFormatter就像他们在这里所做的一样,但无济于事。到目前为止,这是我的配置文件中的内容:

jodatime {
    format.org.joda.time.LocalDate = "yyyy-MM-dd"
    format.org.joda.time.PeriodFormatter = { new format.org.joda.time.PeriodFormatterBuilder()
        .appendMonths()
        .appendSuffix( " month", " months" )
        .appendWeeks()
        .appendSuffix( " week", " weeks" )
        .appendDays()
        .appendSuffix( " day", " days" )
        .appendHours()
        .appendSuffix( " hour", " hours" )
        .toFormatter();
    }
}
4

1 回答 1

0

班级

ISOPeriodFormat

场地

cStandard  

这是默认的周期格式化程序。该字段是private static并且还没有设置器。但是您可以使用 java-reflection API 更改此值

  final Field f = ISOPeriodFormat.class.getDeclaredField("cStandard");
  f.setAccessible(true);
  f.set(null, yourPeriodFormatter);
于 2012-09-07T08:43:17.780 回答