去年夏天做了一个非常正确的决定,加入JAVA大军并且通过自己的努力,目前刚刚入职,心里还有点小激动(因为我是零基础学习的,学历不高,能入职已经很高兴啦),目前入职两个月了,也开始接触项目了,现在我把我在工作中遇到的问题还有解决的方法做一下记录,方便有同样问题的同学可以做参考,自己也可以做知识积累。本人目前刚刚接触java,还是一个小白,如有不对的地方还请大神多多指导。好啦,废话不多说,进入今天的主题!
说起类型的转换,可以说是个很基础的知识了,但是学习的时候没有好好学,只有恶补了。项目的框架是用Spring+SpringMVC+Hibernate集成的,在controller和页面js中用到了时间类型的转换。
需要说明的是,之前在实体类中时间使用String类型,之后改成Date类型的就出现了类型转换的问题
一、在controller中,代码如下
@ResponseBody
@RequestMapping("/edit")
public Map edit(HttpServletRequest request){
Map map = new HashMap();
String id = request.getParameter("id");
PrStrategicAgreement agreement = agreementService.get(id);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String singTime = sf.format(agreement.getSignTime());
map.put("data", singTime);
map.put("agreement", agreementService.get(id));
return map;
}
通过SimpleDateFormat设置时间的显示格式,再通过format的方法进行时间的转换,最后放入map中,页面通过ajax进行赋值。
二、在页面中,代码如下
list页面是通过js注入的,所以需要在js里面做类型转换,我所遇到的问题是在list页面上时间一栏显示的是一行数字,问了别人才知道那是时间戳,没有看明白的请看下面图片
在list页面的js中的代码如下:
var list = data.list.recordList;
var index = data.list.indexNum;
for ( var i in list) {
view+="<tr style=\"curosr: pointer\" >"
+ "<td>"+index+++"</td>"
+ "<td>"+[list[i].agreementName]+"</td>"
+ "<td>"+[list[i].signTime]+"</td>"
view+="</td>"
+ "<td>"+[list[i].coopBusinessArea]+"</td>"
+ "<td>"+[list[i].cityArea]+"</td>"
+ "<td>"+[list[i].contactUsername]+"</td>"
此时在页面上时间字段显示的是时间戳格式,所以需要进行转换,转换完的js代码
var list = data.list.recordList;
var index = data.list.indexNum;
for ( var i in list) {
var time = list[i].signTime;
var myDate = new Date(time).toLocaleDateString();
view+="<tr style=\"curosr: pointer\" >"
+ "<td>"+index+++"</td>"
+ "<td>"+[list[i].agreementName]+"</td>"
+ "<td>"+myDate+"</td>"
view+="</td>"
+ "<td>"+[list[i].coopBusinessArea]+"</td>"
+ "<td>"+[list[i].cityArea]+"</td>"
+ "<td>"+[list[i].contactUsername]+"</td>"
首先声明变量time接收时间值,此时为number类型,通过new Date(time).toLocaleDateString();把类型进行转换,转换完效果
大功告成,这样在页面上显示的就是我需要的时间格式了。如果各位同学们还有更好的方法请留言多多交流。
第一次写技术分享博客,还请大家多多支持!我也会继续提高自己的技术水平,分享更多的心得!