如何使Date类型的变成标准日期格式

数据库中有一个日期的字段类型的date

clipboard.png

clipboard.png

程序中也创建了一个相应的实体类

public class AttendanceState {

private int user_id;

private String username;

private Date date;

private String state;

//省略 get set....

}

在数据库中查询出一些记录后(数据库我使用的是MySql,和Mybatis),最后想以JSON 格式来传递,但JSON 中显示关于日期的数据都显示为毫秒数,我是想使其成为跟数据库里一样的时间格式(yyyy-MM-dd)

clipboard.png

这个该怎么做,才能使 date 成为2017-01-15 这样的格式,(最好不要一个个拿出来,转换一下在放回去)

回答:

你的需求是  前台展示的时候是yyyy-MM-dd的格式吗?

那为什么让后台转换格式增加负担呢?

倒不如使用js把后台传递给前台的数据转换成你想要的格式

例如:

var newTime = new Date(date.date);
alert(newTime.getFullYear() + "-" + (newTime.getMonth() + 1) + "-" + newTime.getDate());

回答:

Date序列化为JSON默认就是序列化为时间戳。如果需要format可以自己定义。

Jackson中:

ObjectMapper mapper = new ObjectMapper();

mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

mapper.writeValueAsString(object);

fastjson中:

@JSONField(format = "yyyy-MM-dd HH:mm:ss")

private Date date;

回答:

不知道你转成json是用什么包。我用的包转成json是通过getter。这样方法很简单:1.类添加一个静态的SimpleDateFormatter对象sdf;2.修改getDate()方法,return sdf.format(date)。
但是这样感觉也不是很好,如果其它的地方也有这种需求的话也要这样改,比较混乱。期待高见。

回答:

json传输日期采用什么格式跟你使用的序列化库和序列化配置有关。如果服务器和客户端采用不同技术平台,可能产生的json日期用的规范都不同。导致反序列化时日期无法识别。没办法日期的规范太多了。

以上是 如何使Date类型的变成标准日期格式 的全部内容, 来源链接: utcz.com/p/173899.html

回到顶部