首页 > 编程 > Java > 正文

java.util.Date和mysql日期之间转换

2019-11-08 03:22:01
字体:
来源:转载
供稿:网友

Pojo里面用的是java.util.Date;MySQL里面用的是datetime。因为表单提交所有数据都是以字符串的形式传输(如果说错请大神指正),所以在后台接收到前台传来的日期字符串是要转换一下。

/**	* 字符串转换成日期	* @param str	* @return date	*/	public static Date StrToDate(String str) {	  	   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");	   Date date = null;	   try {	    date = format.parse(str);	   } catch (ParseException e) {	    e.PRintStackTrace();	   }	   return date;	}  这样就能正确插入数据库中。

但是当从数据库中取出来的时候,显示总是不正常的。控制台输出是这样子的:Mon Feb 13 18:10:00 CST 2017,浏览器输出是这样子的:1486980600000

通过

/**	* 字符串转换成日期	* @param str	* @return date	*/	public static Date StrToDate(String str) {	  	   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");	   Date date = null;	   try {	    date = format.parse(str);	   } catch (ParseException e) {	    e.printStackTrace();	   }	   return date;	}

转码时候,控制台输出是这样子的:2017-02-13 18:10:00,然而浏览器输出还是这样子的:1486980600000

因为整体的转换都是用阿里的fastjson,所以觉得它应该有专门针对Date类型的封装。果然,最后在Pojo的Date上加上@JSONField (format="yyyy-MM-dd HH:mm:ss") 注解,比如:

@JSONField (format="yyyy-MM-dd HH:mm:ss") //日期格式可以自己设定

private Date birthday;

前台显示了我想要的样子:2017-02-13 18:10:00。

还有很多的序列化我没看懂。有兴趣的可以看一下。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表