java - Lombok 漂亮的打印日历

标签 java lombok

我使用lombok,它真的很棒! 但是,如果我打印包含 Calendar 属性的 bean,它会打印 Calendar 对象(当然......),并且看到 Calendar 的值确实令人困惑。我可以看到类似的东西

ScheduledEvent(id=1, scheduledStartDate=java.util.GregorianCalendar[time=1492032183000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Budapest",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=151,lastRule=java.util.SimpleTimeZone[id=Europe/Budapest,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=3,WEEK_OF_YEAR=15,WEEK_OF_MONTH=3,DAY_OF_MONTH=12,DAY_OF_YEAR=102,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=23,SECOND=3,MILLISECOND=0,ZONE_OFFSET=3600000,DST_OFFSET=3600000], ...

是否可以以某种方式将 SimpleDateFormat 分配给日历(例如,如果 lombok 满足 Calendar 对象,则使用此格式化程序)并具有像“2016-34-34T12:12:12.543”这样的简单值?

谢谢,
五、

最佳答案

我知道这篇文章是两年前的,但现在有更好的解决方案。

让 lombok 生成 toString() 方法,使用 @ToString.Exclude 注释您的字段,并使用此注释创建一个方法:@ToString.Include(名称 =“yourVariable”)

这是一个例子:

@Data
public class ScheduledEvent {
    private int id;

    @ToString.Exclude
    private GregorianCalendar scheduledStartDate;
    // etc ...

    @ToString.Include(name = "scheduledStartDate")
    private String formatScheduledStartDate() {
        return new SimpleDateFormat("yyyy-MM-dd").format(scheduledStartDate.getTime());
    }
}

在这种情况下,toString()方法返回:

ScheduledEvent(id=1, scheduledStartDate=2019-03-04)

关于java - Lombok 漂亮的打印日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42950857/

相关文章:

java - 如何使用 lombok 在 @NonNull 异常中抛出我自己的自定义消息?

maven - JsonIgnore 注释不适用于 Lombok

java - 父类中的构造函数父级不能应用于给定类型错误

java - ActionListener 找到按下的 JButton 的正确名称(不是出现的字符串)?

java - 自定义事件监听器类

java - jsp中的表单,用什么代替隐藏字段

java - 从 git 项目导入/创建分支时,我得到多个源文件夹

java - 你最好的 Swing 设计模式和技巧是什么?

java - Sonarqube gradle 插件覆盖 Lombok

java - 如何用另一个java对象的值更新一个java对象的所有字段?