如何使用ReflectionToStringBuilder并将Dates格式化为可读字符串?

时间:2017-12-12 18:38:06

标签: java date formatting apache-commons date-formatting

我有一个toString方法,如下所示:

public String toString() {
    return new ReflectionToStringBuilder(this, new MultilineRecursiveToStringStyle()).toString();
}

这很有效,但Timestamps(以及我认为,Dates)显示为对象上的普通toString会显示:

changeTime=java.sql.Timestamp@32a9d65c[
  nanos=0
],

有没有办法告诉ReflectionToStringBuilder我希望Date对象格式化?

1 个答案:

答案 0 :(得分:-1)

是。 ReflectionToStringBuilder允许:

new ReflectionToStringBuilder(this) {
   @Override
   protected Object getValue(Field field) throws IllegalArgumentException, IllegalAccessException {
     if (Timestamp.class.equals(field.getType())) {
       return "convert timestamp to String";
     } else {
       return super.getValue(field);
     }
   }
}