java.util.Date和mysql日期之间转换
来源:互联网 发布:怎么用u盘导出考勤数据 编辑:程序博客网 时间:2024/06/05 18:14
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。
还有很多的序列化我没看懂。有兴趣的可以看一下。
在往后的开发中,我还遇到了一个问题,就是springMVC前台传来的Date类型数据,由于与POJO里类型不匹配,所以页面直接报400。奇怪得不行。最后是直接对POJO的Date字段进行改造!具体改造如下:
public void setBegintime(begintime) {this.begintime =begintime;}改成:public void setBegintime(String begintime) {if("".equels(begintime) || begintime == null) {
this.begintime = "";}this.begintime = DateUtils.StrToDate(begintime);}参数类型改成String类型,并使用上面说的日期转换工具进行转换。改造setter方法只能解决后台接收参数400问题。但是前台读取数据库Date字段时,还是不能正常显示。
所以还需要改造一getter。也是直接对POJO的对应字段进行改造:
public Date getBegintime() {return begintime;}改成:
public String getBegintime() {if("".equels(begintime) || begintime == null) {
return "";
}return DateUtils.DateToStr(begintime);}返回值类型改成String类型,并使用Date工具类进行转换一下。完美解决。
个人觉得这虽然是破坏了POJO的结构,但是是从根本上解决了问题。当你尝试了各种注解的方式都不能解决的时候,可以用这个方法。
1 0
- java.util.Date和mysql日期之间转换
- java.util.Date 和 java.sql.Date 之间的转换
- java.util.Date和java.sql.Date之间的转换
- java.util.Date和 String之间的转换
- java.util.Date 和 String 之间的转换
- java.util.Date对象和String之间的转换
- java.util.Date和 String之间的转换
- Date,Timestamp,String之间的转换(java.sql.Date和java.util.Date的理解)
- XMLGregorianCalendar日期类型与Date(java.util.*)日期类型之间相互转换
- java.util.Date和java.sql.Date之间的类型转换,以及String和Date的转换
- java.util.date 和 java.sql.date 两者之间有什么不同,如何转换
- String、java.Util.Date和java.sql.Date之间的转换
- java.sql.Date java.util.Date String 之间的转换
- java Date 日期型和字符串之间的相互转换
- sql.Date与util.Date日期格式化和转换
- mysql日期存储为int,mybatis做ORM映射与java.util.Date的转换问题
- 日期Date和字符串之间转换
- Java.util.date 与 java.sql.date区别和转换
- opencsv方式读取csv文件,详解,示例
- 基于openwrt RT5350的uboot波特率修改
- [LeetCode] Sum of Two Integers(用位运算实现加法)
- 同步类CountDownLatch整理
- Android ViewAnimator及其子类
- java.util.Date和mysql日期之间转换
- invalidate和postInvalidate 的区别及使用
- hadoop fs -put上传失败
- redis菜鸟教程
- “(null)” is of a model that is not supported by this version of Xcode. Please use a different device
- 在web.xml中配置,使用配置类替代springmvc.xml和applicationContext.xml
- acpi 表中对spcr的parse来初始化串口
- 杂记
- Shell脚本