时间戳字段怎么用日期控件显示?

数据库存的是时间戳,LONG类型的字段(createtime)。在表格中,可以通过设置列的ValueProvider来实现转换。
teamsTable.getColumn(“createtime”).setValueProvider(f -> {
if (f.getCreatetime() != null)
return new Date(f.getCreatetime());
else
return null;
});
想在编辑界面用日期控件显示日期,请问有类似转换的方法吗?

为什么不用@Temporal(TemporalType.TIMESTAMP) 处理时间戳

如果要编辑的话,可以用代码给日期控件设置一下值,不要给日期控件绑定属性。
dateField.setValue(new Date(timestamp));

能详细说一下,怎么处理么?
是要我直接把数据类型改成DateTime么?

另外DateField控件怎么显示秒?默认只显示到分钟

如果是新设计的系统,实体属性直接用 date 类型,指定要存储日期时间,用注解 @Temporal(TemporalType.TIMESTAMP)。对于不同数据库平台会使用不同的数据库列类型。参考这里:https://doc.cuba-platform.cn/manual-7.0-chs/dbms_types.html。
这种方式可以利用框架进行数据绑定处理,方便一点。

如果是遗留系统或有其它特殊原因需要存储数值型的时间戳 ,就手工处理一下。

DateField 控件显示秒,参考这里:
https://doc.cuba-platform.cn/manual-7.0-chs/gui_DateField.html
image

11个帖子被分离到新主题表格中如何格式化日期列